Mobile Development

Mobile Development

TL;DR

I build native and cross-platform mobile apps in various technologies.

As a full stack web and mobile developer, I have the expertise to implement the features every mobile app needs end-to-end.

Whether your goal is to ship a prototype quickly, or you've already validated your idea and need to build something performant with a strong foundation, I can help.

Whether you prefer to build separate native applications, or leverage cross-platform frameworks to build once and deploy everywhere, I can help.

Since the mid 2010s I've been doing mobile development in various technologies including native Android, native iOS, Cordova/PhoneGap, Ionic, Kotlin Multiplatform, and React Native. The apps I have helped build are in the hands of millions of users worldwide.

I started my career in mobile web development working on the Bitstrips app, and then native mobile app development for Android in Java and iOS in Objective-C when working on the Bitmoji app. Since then I've learned the more modern programming languages Swift (iOS) and Kotlin (Android) to help speed up native mobile app development.

As a full stack web and mobile app developer, I have the expertise to implement the features every mobile app needs end-to-end:

  • the data for your app and how to build API endpoints to make it easy for mobile apps to send and receive data
  • push notifications on both iOS and Android, including notification channels for Android
  • deep link support on both iOS and Android
  • thorough understanding of the design guidelines for both iOS and Android
  • localization, which often requires translating content on iOS, Android, as well as on the back-end for content that's pushed from the back-end to the devices

As well as building for native mobile, I also work with cross-platform technologies like Kotlin Multiplatform Mobile (KMM), Cordova/PhoneGap, Ionic, and React Native (including building React Native plugins), and have some experience with Flutter.

I have developed various things on mobile:

  • custom keyboards and other app extensions and widgets
  • real-time experiences with web sockets, server-sent events, and gRPC
  • audio and video recording and playback
  • building apps that work with a user's contacts
  • text message-based authentication to allow users to login with their mobile phone number
  • social media service authentication (login and signup)
  • in-app purchases
  • working with files for exporting and importing data
  • performing periodic worker tasks in the background
  • building features that leverage the user's location to help them locate content near them
  • managing data on-device with databases like CoreData (iOS) and Room database (Android)

For iOS specifically:

  • working in Objective-C and Swift
  • working with both UIKit and Swift UI
  • building a custom keyboard extension
  • building an Apple Watch extension
  • universal links support (deep links)

For Android specifically:

  • working in Java and Kotlin
  • working primarily in XML views Android, with some experience with full Jetpack Compose apps, as well as hybrid XML-Compose apps
  • extensive experience with Android's implicit intent system and leveraging it to build faster and require less permissions from the user
  • leveraging Android's notification channels to allow users to customize which notifications they'd like to receive
  • deep understanding of concurrency in Android apps in both Java and Kotlin
  • building widgets/quick settings tiles for Android
  • architecting an Android app to follow established patterns including MVVM architecture and making it easier to unit test, dependency injection, and improving type safety when navigating and accessing views to prevent runtime crashes

Read more about my Android experience.

Some example mobile projects I've worked on:

I can augment your existing team to provide that mobile app development expertise and guidance your team may be lacking, or work alongside your team of experts the way they prefer to work to help them power through a big project. I'm a full stack web and mobile developer based in Canada, with significant experience in iOS and expertise in Android, and I work with teams locally and internationally to help them write software. If you'd like to work together, contact me.