android

Archi & Techno

Android library development best practices guide

As Android developers, we are used to having to integrate many libraries in our applications. It can be from quite small .jar files to huge .aar archives which embed multiple screens. Sometimes the integration of these libraries goes smoothly but in some cases, it can be quite painful and lead to the addition of some “hacks” into the app in order to integrate it properly. In some other cases, it can also lead to time-consuming exchanges between the person who integrates the library and the…

Read more
Archi & Techno

Build your first Instant App!

You are an adept of Android App Links and you find wonderful being able to suggest your users to install your application or to redirect them from your website to your application with specific data relative to their requests? Well, forget (almost) everything you know. Since Google I/O last week, Google released to developers what comes as the biggest news in the Android development world: Instant Apps. Instant Apps are applications that can be executed instantly, from anywhere, without having to be installed on your…

Read more
Archi & Techno

Android Themes & styles, a real architecture

In modern Android development, there is a huge rise of advanced architectures like MVP, MVVM or Clean Architecture, crazy libraries like RxJava or Dagger and even new languages like Kotlin. But on most projects, theme and styles are still written in an oldschool way with no consideration on how to architecture them. But these XML are part of your code base and you should show them the same love you show to your Java Code.

Read more
Archi & Techno

Asynchronism in mobile

In Android, asynchronous tasks are done to avoid long operations in the main thread. Android documentation gives a good advice to the community to avoid ANR (Android Not Responding): Therefore, any method that runs in the UI thread should do as little work as possible on that thread. In particular, activities should do as little as possible to set up in key life-cycle methods such as onCreate()and onResume(). Potentially long running operations such as network or database operations, or computationally expensive calculations such as resizing…

Read more
Archi & Techno

Identify performance issues in your Android application

A smooth user experience is a common attribute of all the successful Android applications. It might sound as an obvious statement but many are the applications that are a little bit “laggy”. Moreover android developers are use to test their application mostly on high-end devices (generally their own devices), forgetting that their app will be run on cheaper devices, which will deteriorate the app smoothness a lot. It is pretty easy to find documentation on the Internet that will give you advices to have an efficient…

Read more
Archi & Techno

Reduce your Android build duration

Build duration is a metric that every Android developer should monitor carefully. Indeed (even if you are very confident in the code you produce), you will have to run your project many times every day. When you re-run your code, you need to be able to see the result of your modifications really quickly. Otherwise, two things may happen: something will distract you and you will loose your focus or you will go back to your code and forget to check the effects of your…

Read more
Archi & Techno

Keep your gradle dependencies up to date seamlessly

Keeping your dependencies up to date is not the funniest part of a project dev process. Especially if the dependencies list becomes long. However, it is crucial to keep your dependencies as possible close to the up-to-date versions available in order to benefit from the latest upgrades (such as bug fixes). The longer you wait, the harder the upgrade will be. So what if you receive an email every week to inform your team about the last version available of your projects dependencies? Some tools like Lint…

Read more
Archi & Techno

Strengths and weaknesses of a cloud-hosted Android CI Server

Using a CI Server is a programming practice that is well established and not opened to debate anymore. Sometimes, it's even a topic on which the IT Department has regained control of, managing and rationalizing the servers. Yet, as is often the case, mobile is following its own way: the technologies used can be considered non-standard among the company, the ecosystem is updated way more frequently than in other computing areas, and the need of running on a specific OS for iOS can be the…

Read more
Archi & Techno

A look at Xamarin

In this article, we'll talk about Xamarin, a C# .NET tool enabling development of cross-platform mobile applications. We'll focus on the missing part: the reuse of native libraries. What is Xamarin? Xamarin is not only a product but also a company. The product addresses a common issue, the unified cross-platform development. Xamarin allows to create native applications on iOS, Android and Windows Phone platforms. Its upside lies in the reuse of code, reducing the time to market. Xamarin also provides its own development environment, Xamarin…

Read more
Archi & Techno

Develop a secured Android application

Android applications are commonly used to process very sensitive data. It is the developer's responsibility to make sure that the information prompted by the user cannot be intercepted easily by a malicious people. The Open Web Application Security Project (OWASP) [9,10] tries to enumerate the potential security issues of a mobile application. Some of them are the system architect's responsibility (such as issues related to weak server sides control), some are the back end developper responsibility (issues related to authentification checks) and finally, some are…

Read more