We build mobile apps for others, for the two major mobile platforms today, Android and iOS. We would be happy to empower your organization and your users by developing your custom mobile app! Please just drop us a line to get started.

  • iCheckIn is a private app used by Learning Tree instructors to report on their course setups and arrivals. We wrote the previous Android version. The current version was written in Flutter (see below) and runs on both Android and iOS.

  • jpstrack is an Android-only app for creating OpenStreetmap data or Google Earth data, using your phone’s GPS. A portable version is being developed in Flutter.

  • PassMaker is a simple password generator. It was written for Android.

Some "mobile space" definitions:

Android is the operating system for Samsung, Google Pixel, and in fact most other phones other than iPhones. iOS is the operating system for iPhones and (under the name iPadOS) for iPads. Like most operating systems, one can program these in certain languages. For programming:

  • Google’s Android team provides the Android Studio visual IDE and the Android SDK (Software Development Kit). Supported programming languages include Java and Kotlin.

  • Apple provides XCode and its back-end tools corresponding to the above; these also provide for developing macOS desktop apps, but not both from the same code. Supported programming languages include Objective C and Swift.

  • Flutter is an independent all-platform toolkit from Google. The only supported language is Dart.

All of these languages - Dart, Java, Kotlin, Swift, and Objective C - are part of a large family of Object-oriented programming languages, and share a vague similarity such that a software developer can learn one from another, with the effort depending on their background and the scale of differences among the different languages.

Flutter: Very Cross-Platform

Flutter is a recent cross-platfrom toolkit from Google. It has the potential to be the dominant way of building mobile apps: one codebase gets you Android and iOS mobile apps, web apps, and desktop apps for three major platforms: Windows, macOS and Linux. And Fuchsia, Google’s possible new platform for Android and Chromebooks, uses Flutter as its primary UI. Finally, Flutter is all open source so you could in theory build support for a new or minor platform. Flutter features the Dart programming language, several libraries of UI widgets, hot reload that is somehow much faster than Android Studio’s own hot reload for Android, even on the same platform, and lots more.

yfleet menu
Figure 1. Menu and Map in Flutter prototype app

I have some some Flutter resources on my Flutter page.

Android: Open-Source Mobile

Android is the leading open-source Linux-based mobile telephony platform, and one of the two mobile platforms that matters. Originally developed by Android Inc., a startup which Google purchased, Android was open-sourced and released by Google and the Open Handset Alliance. Now you’d be hard-pressed to find a major handset maker (other than Apple) that is NOT using Android for some or most of their handsets.

Android apps have traditionally been developed in the Java language with a custom API for the Android environment. However, Kotlin - which is somewhat a simplified and improved Java - is increasingly being used.

Of course my big item is the Android Cookbook. But there is lots of other information on Android as well:

iOS: Apple’s Mobile Platform

iOS is the operating system used on iPhones, and thus, one of the two mobile platforms that matters. A variant, iPadOS, is used on iPads. Along with macOS and tvOS, this quartet of OSes are all based on BSD Unix and a CMU variant Unix kernel called "Mach".

iOS apps were traditionally written in Objective C, but increasingly a new Apple-specific language called Swift is being used. We, of course, prefer to develop iOS apps in Flutter, which is then translated into the native languages for speed.

Other Cross-Platform Toolkits

There are, of course, other cross-platform toolkits besides Flutter. Here is a list, updated infrequently, of cross-platform development frameworks. Updates welcome.