Implementing email and password-based authentication on Android using Firebase

Articles

As a developer, it’s crucial for your business to have access to your user’s details. Be it to monitor their usage patterns, send promotional campaigns, notify them of critical updates to your services, or for additional cross-selling of new services.

One effective technique to gather user data is via authentication. Or, put simply, a login system that lets your app know when a particular user is using the app.

Implementing a secure authentication system of this kind from the ground up might require weeks of effort, along with you having to learn a server-side framework to build the backend for the same.

Continue reading “Implementing email and password-based authentication on Android using Firebase”

Exploring Language Models for Neural Machine Translation (Part Three): Generating Text with Hugging Face

Articles

This is part 3 of an ongoing series on language models, starting with defining neural machine translation and exploring the transformer model architecture, and then implementing GPT-2 from scratch.

Specifically, in the first part of the series, we implemented a transformer model from scratch, talked about language models in general, and also created a Neural Machine Translator.

Continue reading “Exploring Language Models for Neural Machine Translation (Part Three): Generating Text with Hugging Face”

Benchmarking TensorFlow Mobile on Android devices in production

Articles

A few weeks ago I looked at the speed of Core ML models running on various Apple devices. Apple’s new A12 Bionic chip paired with Core ML 2 made the latest generation of iPhones and iPads more than 10x faster than previous generations.

While faster is usually better, large differences in performance across devices make it hard for developers to keep user experience consistent. Apple’s (relatively) small product family and aggressive upgrade strategy mitigates this problem to some degree.

Continue reading “Benchmarking TensorFlow Mobile on Android devices in production”

Dog Breed Classification on Mobile with Flutter and TensorFlow Lite

Articles

Machine learning and AI are having more and more influence on mobile tech nowadays. Hardware is becoming more and more AI-capable, and machine learning and AI methods are being integrated in mobile apps to optimize and enhance user experiences.

In this tutorial, we’re going to apply machine learning methods provided by the TensorFlow Lite library for the purpose of image classification in a Flutter app. Flutter—as introduced and acknowledged by Google—has a tendency to produce and support libraries related to machine learning.

Continue reading “Dog Breed Classification on Mobile with Flutter and TensorFlow Lite”

Identify Language of Text on Android Using Google’s ML Kit

Articles

Nowadays, language detection is very popular (especially with machine learning), and mobile apps that use it are widely popular in every part of the world, with different users speaking different languages. Language identification can easily help you understand your users’ languages and personalize your app based on them.

Language detection is essentially a technique/science that allows us to automatically identify the language of a given text, be it English, Chinese, or many others. We can use machine learning for this kind of identification —and we can even do this inside mobile apps!

Continue reading “Identify Language of Text on Android Using Google’s ML Kit”

License Plate Recognition, Detection, and Plate Number Extraction on iOS

Articles

Generally speaking, human beings can recognize objects without too much effort or consideration. However, recognizing objects in images can be a very difficult task in the field of computer vision.

There are many use cases in which this difficulty becomes evident. One specific use case involves license plate detection—it’s particularly a big challenge because of the differences inherent in the plates (i.e. the objects) themselves: different sizes and styles, the conditions and lighting under which the images of the plates are captured, etc.

Continue reading “License Plate Recognition, Detection, and Plate Number Extraction on iOS”

Core ML On-Device Training, with Transfer Learning from Swift for TensorFlow Models

Articles

As a first small step towards a federated learning platform that supports mobile and wearable devices (in particular, devices within the Apple ecosystem) I’ve being developing a Swift library called SwiftCoreMLTools that mimics in Swift a subset of the functionalities of Apple’s CoreMLTools Python library.

Continue reading “Core ML On-Device Training, with Transfer Learning from Swift for TensorFlow Models”

The Fast, Furious, and Flaky: Continuous Integration with Xcode 10 Parallel Tests

Articles

Apple is truly investing in testing tools and technologies, which is a great thing for app developers. In fact, Apple announced parallel testing support for the XCTest framework at WWDC 2018 in its platform state of the union session. There was a separate session on What’s New in Testing, describing new features in Code Coverage, XCTest, and XCUITests, which included parallel testing.

Continue reading “The Fast, Furious, and Flaky: Continuous Integration with Xcode 10 Parallel Tests”

Monetizing Mobile Machine Learning

Articles

If you at all follow the economics of mobile platforms, then you’ve almost inevitably heard about (and likely saw) Epic’s recent viral campaign in response to Apple’s decision to ban the incredibly popular, free-to-play game Fortnite from the App Store.

You can read much more about what’s happening between Epic and Apple, but it boils down to this: The App Store has banned Fortnite for violations of its terms of service, specifically because Epic has been using its own in-game payment system. This makes some sense, given Fortnite’s status as an elite freemium gaming experience.

Continue reading “Monetizing Mobile Machine Learning”

Make your Android apps talk with Text-To-Speech

Articles

In a previous article, I described how to utilize speech recognition in Android. This consisted of capturing user speech, processing it, and implementing it.

But what if that process is reversed, and you want to take a text input and output speech? This type of system is, so-called, text-to-speech (TTS). TTS software, in general, creates a computer-generated voice that’s also considered as an assistive technology tool.

Continue reading Make your Android apps talk with Text-To-Speech