Cross-platform mobile apps are increasingly being built with React Native. But how can you scan for QR codes and augment the user’s camera view when they’re present?Continue reading →
It’s easy to get entangled in spaghetti code, fuzzy responsibilities, and opaque architecture. It is just as easy to write crisp, clear code that is just as easy to write, maintain, and update with a little forethought.
Join Toptal Android Developer Tomasz Czura as he guides you through the process and the reasoning behind creating clean architecture on Android.Continue reading →
Keeping your Android codebase maintainable as your codebase grows can be a challenge. In this article, Toptal Freelance Android Developer Abhishek Tyagi shows how to combine MVVM with Clean Architecture—the latter as described by Robert C. Martin—to write decoupled, testable, and maintainable code.Continue reading →
Despite initial skepticism, React Native is very much in demand today!
In this article, Toptal Freelance React Native Developer, and former React Native skeptic, Alexander Pataridze talks about why he became a React Native advocate instead and introduces us to the technology by illustrating four use-cases.Continue reading →
There is no way around application diagnostics. No matter how good your code is, you will need to be able to monitor and study system behavior. This is where Android’s DDMS shines.
In this article, Senior Android Engineer Gilad Haimov explains how veteran Android developers leverage the potential of DDMS to improve app stability and performance, test new features, diagnose, and debug their code.Continue reading →
Android provides many ways of creating and managing threads, and third-party libraries exist to make that even easier. However, with so many options, choosing the right approach can be quite confusing.
In this article, Toptal Freelance Software Engineer Eliran Goshen discusses some common scenarios in Android development that involve threading and how each of the scenarios can be dealt with.Continue reading →
Dealing with concurrency in Android through imperative-style programming can be quite the hassle. RxJava, a library for reactive and functional style programming, allows concurrency constructs to be modeled in a reactive way in Android’s non-reactive world.
In this article, Toptal Freelance Software Engineer Christopher Arriola shows us how RxJava can be incrementally introduced to existing Android projects and leveraged to simplify concurrency.Continue reading →
Since the inception of the platform, Android developers have had pretty much only one option for a database: SQLite. Although feature-rich and powerful, it wasn’t quite what Android app developers needed. Realm, a modern, efficient database solution for mobile platforms, turned out to be an amazing replacement for SQLite on Android.
In this article, Toptal Software Engineer Mateus Gondim Romão Batista explains why you should use Realm for your next Android application.Continue reading →
In the past few years, Microsoft has pulled a few aces from up its sleeve. Yes, they messed up Skype, failed with smartphones, and almost succeeded with tablets. But, they did some really amazing things as well.
Relinquishing their closed empire approach, they open-sourced .NET, joined the Linux Foundation, released SQL Server for Linux, and created this great new tool called Visual Studio for Mac.
In this post, Head of Open Source Demir Selmanovic details how to make an Android and iOS app in C# on your Mac.Continue reading →
Any experienced developer will tell you that their best code isn’t code they wrote. It’s code they took from someone else’s work. Many of the problems we encounter have already been solved—and the remedies packaged into libraries available to anyone. Why reinvent the wheel when free wheels are everywhere?
In this guide, Senior Android Engineer Gilad Haimov will take you on a quick tour of some the most powerful Android libraries out there. Robust as a hammer, faster than a drill, and more precise than any scalpel; no Android developer should leave home without these must-have tools.Continue reading →
Google formally announced Android 7.0 a few weeks ago, but as usual, you’ll have to wait for it. Thanks to the Android update model, most users won’t get their Android 7.0 over-the-air (OTA) updates for months. However, this does not mean developers can afford to ignore Android Nougat.
In this article, Toptal Technical Editor Nermin Hajdarbegovic takes a closer look at Android 7.0, outlining new features and changes. While Android 7.0 is by no means revolutionary, the introduction of a new graphics API, a new JIT compiler, and a range of UI and performance tweaks will undoubtedly unlock more potential and generate a few new possibilities.Continue reading →
Implementing applications that deal with complex concurrent behavior has always been a challenging aspect of programming. Various paradigms exist that promise a solution to this problem in different ways. RxJava is a Java library that enables Functional Reactive Programming in Android development. It raises the level of abstraction around threading in order to simplify the implementation of complex concurrent behavior.
In this article, Toptal Freelance Software Engineer Christopher Arriola gives us a detailed walkthrough of RxJava and how it fits into the realm of Android development.Continue reading →
Kotlin is a new, expressive general-purpose programming language powered by the same virtual machine technology that powers Java. Since Kotlin compiles to the JVM bytecode, it can be used side-by-side with Java, and it does not come with a performance overhead.
In this article, Toptal Freelance Software Engineer Ivan Kušt gives us a walkthrough of ten major features of Kotlin that help avoid boilerplate code and, more importantly, save time.Continue reading →
Java has been a dominant programming language for ages, but modern times call for modern languages. Meet Kotlin, a modern, clear, and expressive programming language powered by the same virtual machine technology that powers Java.
In this article, Toptal Freelance Software Engineer Tomasz Czura takes us for a spin through the world of Kotlin and shows us how it can be used to make an Android application with an elegant architecture without compromising the very qualities of the code that Kotlin aims to provide.Continue reading →
The plethora of tutorials on building Android apps may have you thinking that making a mobile app is simple. In reality, however, performance issues can be very complicated, and because performance plays a key role in making sure that your app stays on your users’ list of favorite apps for a long time, every little detail must be given one’s full attention.
In this article, Toptal Freelance Software Engineer Tibor Kaputa shares some tips on how you can optimize some common performance issues and identify some of the bottlenecks in your Android app.Continue reading →
Navigation in mobile applications, when done right, can have tremendous positive impact on overall user experience. Android offers application developers multiple ways of implementing navigation in their application. However, not all navigation patterns are created equal.
In this article, Toptal engineer Becze Szabolcs shows us how to implement fragment-based navigation and how it stacks up against Android’s traditional navigation philosophy.Continue reading →
Are we really going to need $500 phones to get people in developing countries on 3G or 4G? Not really.
Welcome to the world of commoditised smartphones. Allow us to explain what’s going on and why it could have a significant impact on software and hardware industries.Continue reading →
Several factors conspired to stifle Android Wear growth, ranging from lack of Google development, to inadequate hardware. Some of these problems have been addressed, some are being addressed, while others cannot be addressed with currently available technology.Continue reading →
Force Touch is not a new idea. BlackBerry experimented with the concept back in 2008, and a few Android phone makers also examined the possibility of using Force Touch on their products. In fact, Force Touch support has been a part of Android for years; it was introduced in Android 1.0.Continue reading →
Cars with next-generation connected infotainment systems will create new opportunities on several fronts. In case you already have an infotainment system with a neat touchscreen and GPS in your car, please accept my condolences; it’s about to become as obsolete as a Nokia 3310 compared to an iPhone.Continue reading →
OpenGL, a cross-platform API for rendering 2D and 3D graphics, is extremely powerful and yet surprisingly easy to get started with. Although one may find the most common applications of OpenGL and rendered graphics in video games only, in reality there are far more uses. To demonstrate the power of OpenGL, we’ll be building a Mandelbrot set generator on Android using OpenGL ES.Continue reading →
It is not uncommon for developers to find themselves in need of a UI component that is either not provided by the platform they are targeting or is, indeed, provided, but lacks a certain property or behavior. The answer to both scenarios is a custom UI component. The Android UI model is inherently customizable, offering the means to create custom UI components in various ways.Continue reading →
Whether you’re an avid angler or an app developer, you may be interested in taking a closer look at the development of a fishing app, which involved some of your fellow Toptalers.
The goal was to create an app that would be truly useful in a professional fishing setting, while at the same time meeting a hard deadline. Since Fatsack Outdoors wanted to launch the app at one of the biggest fishing tradeshows of the year, the deadline was non-negotiable.Continue reading →
Google announced Android M at its annual I/O dev conference in late May, and the new OS is coming to our beloved Android devices later this year. Android 6.0 is more of an evolutionary step, whereas Android 5.0 was a big leap forward thanks to its 64-bit ART runtime and all new Material Design.
However, Android M should not be dismissed as a minor update. In this post, I will try to explain why.Continue reading →
With Dalvik out of the picture, many people expected Google’s new 64-bit capable ART runtime to stick around for years, which it probably will, but it will get a major overhaul in the near future. In addition to offering support for 64-bit hardware, ART also introduced ahead-of-time (AOT) compilation, while Dalvik was a just-in-time (JIT) compiler.
Throw in new 10-core ARM processors and Intel mobile processors based on three different architectures, and you end up with spicy, Google-style hardware gumbo.Continue reading →
Google wants to bring Android to everything from phones and watches, to cars and smart television sets. Unlike Google TV, Android TV is much closer to standard Android. It runs Android 5.0 (at least in the initial launch version) and can be used on new TVs, as well as on standalone devices.
Android TV is not just about improving the way people consume TV content, it’s more about changing the way they do it.Continue reading →
Location-based applications on our mobile devices have changed the way we interact with mobile technology. The list of these applications is extensive and has had a major impact on our lives.
This article walks us through a step-by-step tutorial of how to determine the location of an Android device using Google Location Services API.Continue reading →
The extremely diverse and fragmented Android ecosystem poses certain challenges when it comes to testing. In this article, we take a look at some approaches that can be effective with tackling these challenges and ease the process of writing and automating tests.Continue reading →
Describing Nvidia Shield as a mere Android console would not do it justice. The console relies heavily on streaming and cloud computing, so it shouldn’t not be viewed as another standalone device.
Nvidia sees Shield as Netflix for games, as a comprehensive Gaming-as-a-Service (GaaS) platform. While it’s still part of the Android ecosystem, Shield could be bad news for some Android game developers, but it also creates a range of new and exciting opportunities.Continue reading →
Java, a sophisticated programming language, has been dominating a number of ecosystems for quite a while. Portability, automated garbage collection, and its gentle learning curve are some of the things that make it a great choice in software development. However, like any other programming language, it is still susceptible to developer mistakes.
This article explores the top 10 common mistakes Java developers make and some ways of avoiding them.Continue reading →
Reverse engineering and hacking are usually related to malicious activities that result in sleepless nights of engineers responsible for system maintenance.
Reverse engineering is a tool that we can utilize to find the flaws and improve our software in many aspects. This article shows us how to use these techniques to learn more about different implementations of web API.Continue reading →
This article provides an overview on building a great Android application, from defining an idea to releasing an application to the store. Toptal developer Ivan Dimoski gives us a chance to learn from his experience in making Ooshies, an Android Live Wallpaper designed to give you a hug and make you feel loved each time you interact with your Android device.Continue reading →
There are thousands of different Android powered devices, with different screen sizes, chip architectures, hardware configurations, and software versions. Unfortunately, segmentation is the price to pay for openness, and there are thousands ways your app can fail on different devices.
Regardless of such huge segmentation, the majority of bugs are actually introduced because of logic errors. These bugs are easily prevented, as long as we get the basics right!
Here’s a quick rundown of the 10 most common mistakes Android developers make.Continue reading →
Google Glass promises to revolutionize how we use our devices to interact with the world. But from a developer’s standpoint, what is so special about developing for the Glass? You’ll be glad to know that the answer is “Nothing!” Here’s a step-by-step tutorial that walks you through developing your first Google Glass app.Continue reading →
With the increasingly ubiquitous nature of mobile devices and applications, if you’re not already thinking about mobile apps, you probably should be. This post focuses on methodologies and tools to employ, and pitfalls to avoid, in the development of highly functional, intuitive, and easy-to-use mobile web apps.Continue reading →
Making a basic Android app is easy. But making it reliable, scalable, and robust, on the other hand, can be quite challenging. With thousands of available devices pumped out from tons of different manufacturers, assuming that a single piece of code will work reliably across phones is naive at best. Segmentation is the greatest tradeoff for having an open platform, and we pay the price in the currency of code maintenance, which continues long after the app passes the production stage.
In this post, we’ll walk through a solution: automated crash reporting with ACRA and a Cloudant back-end, all visualizable with acralyzer.Continue reading →
It’s always fun to put your programming skills on display. A while back, I figured it’d be cool to try and control my laptop via my Android mobile device. Think about it: being able to play and pause music, start and stop programming jobs or downloads, etc., all by sending messages from your phone. Neat, huh?Continue reading →