Droidcon NYC – Mobile Payments using Host Card Emulation

Overview: Learn how Host Card Emulation (HCE) works on Android to enable contactless payments. This is shown by following along with an example application, Handstand Pay (https://github.com/handstandsam/HandstandPay). This example app uses Visa MSD data that was the first form of contactless payments. This presentation also overviews the latest cloud-based secure element HCE solutions using a tokenization provider.

Here are my slides and a video of the presentation.

Presented at:
* Droidcon NYC 2015 – August 27, 2015
* AnDevCon Boston 2015 – July 31, 2015

iOS 101 for Android Developers – AnDevCon Boston 2015

by Stephen Barnes (@smbarne), Fitbit iOS Engineer

Sample Project used in talk: https://github.com/smbarne/AndroidForiOS


By learning iOS and coming over to the dark side, you can learn from the iOS app, and also help do a quick implementation of a feature you already implemented on Android.

Start Developing iOS Apps Today tutorial

Hamburger menu on Android, not on iOS.

UINavigationController to Push/Pop UIViewControllers
* Use this by default for nested content

Other Extensions
* Custom Keyboards
* Photo/Media Editing
* Storage Provider
* Document picker
More: https://developer.apple.com/app-extensions/

Swift 2.0 was announced for iOS9 and Xcode 7.

App Store approval can take up to 2 weeks. On Android, it’s up within 12 hours.

Project Structure
* Swift uses modules
* Note: Objective-C has no namespacing so use class prefixes (recommended to be at least 3 characters, and not something like “FB”)
info.plist is required and similar to AndroidManifest.xml n Android
* No build.gradlew. All build info in *.xcodeproj

Asset Bundles:
* There are 3 buckets. Just @1x, @2x, and 3x
* The iPhone 6 is the first device to have @3x and a non-1:1 or 2:1 pixel ratio.

UIViewControllers <-> Activities (UI Building Blocks)
Fundamental view-management model for all iOS apps.

iOS is strongly architected around the MVC framework.

Fragments don’t exist on iOS, and this sort of concept doesn’t really exist.  You could do it if you use the Child View Controller Containment, but it’s not recommended unless you have significant iOS experience since this is not a common patter.
ListFragment would be done with a UITableViewController on iOS.

Closures are Apple’s Lambda implementation blocks.  These are similar to anonymous functions or AsyncTasks

Main View Components

  • PagerAdapter or NavigationDrawer -> UITabBar
  • ListView -> UITableView
  • GridView -> UICollectionView

iOS Interface Builder is your friend.  AutoLayout is almost a must.

Storyboards are powerful and worthwhile.

Core Data is a ORM with some pluses and minuses.  Designed to be easy to use and reliable.  It is the defacto way to do persistent data as it also has migrations, etc.  Contains grouping, filtering and organizing data in memory and in the UI.

Equivalent libraries:

  • AFNetworking <-> Volley
  • MagicalRecord <-> ActiveAndroid
  • SDWebImage <-> Picasso

DroidCon Montreal 2015

DroidCon Montreal

DroidCon Montreal was AWESOME.  Hands down the best Android conference I’ve ever attended.  There were so many great speakers and sessions that shared tips on Android from the community level instead of straight from Google (like Google I/O).  I felt like I was at a hollywood party with all of these amazing developers that I look up to and use their code in my own projects.

I am going to be doing a series which will touch on the cool things I learned from the conference and go into detail on each.  Here are the topics I hope to cover and as I write posts, I will link them here.

  • Debug Modes for Android Apps
  • Leveraging RxJava
  • Writing Gradle Plugins
  • Monitoring App Crashing with Crashlytics
  • GRPC grpc.io
  • Charles Proxy charlesproxy.com
  • Images on Android w/Picasso, Thumbor & More
  • Testing on Android
  • Material Design & Transitions
  • SDK & Android Library Design
  • Supporting Offline Apps
  • Recycler View

In the meantime, checkout the keynote from Jesse Wilson and Jake Wharton about Open Source.