Using Bluetooth Low Energy Beacons to do contact tracing

Image for post
Image for post
CloseToMe Android BLE library

The idea behind the library

While everyone was in the fight with the COVID-19 pandemic our team was thinking about what can help to the post-pandemic era. The time governments allow people to move out of their caves and get back to their normal life.

The main idea was tracing user close contacts and record that data on the user phone anonymously, a solution totally aligned with GDPR (European Union’s General Data Protection Regulation). …


with Kotlin flavor and ignoring Protobuf pros and cons!

Image for post
Image for post

For those who have no idea what protobuffer exactly is, according to Wikipedia:

Protocol Buffers is a method of serializing structured data. It is useful in developing programs to communicate with each other over a wire or for storing data. The method involves an interface description language that describes the structure of some data and a program that generates source code from that description for generating or parsing a stream of bytes that represents the structured data.

Google developed Protocol Buffers for internal usage and also provided a code generator for multiple languages which you can access the repo on Github. …


some quick notes that might comes handy for beginners

Image for post
Image for post

Kotlin is a new language which at least most of Android developers heard about it or are using it instead of Java.

Out of my curiosity start learning it to know what’s attractive inside that makes some developer crazy about it! so during my learning process, I have made some notes which might look too minified but contains keywords for beginners and your later searches.

This is the notes which I prefer to have at the beginning of my learning process:

val immutableName: String = "Mohsen"var mutableName: String = "Mohsen"
var mutableName = "Mohsen"
var nullableName: String? = nullval numbers = arrayListOf(1, 2, 3, 4, 5)
print("Even Numbers are ${numbers.filter …

Using Framer for Android prototyping

Image for post
Image for post

All programmers with Mobile Application development experience have been in the situation of trying to create a prototype to showcase the application idea in a quick way!

Creating a prototype is a tricky task in term of time and quality. Usually, you have the minimum time available for creating a fancy Application which must not work but look perfect. How is this possible? No one knows that we have to code or design for every animation or loading data to list in Android, which is really time-consuming.

As a reference to framer.com:

The familiarity of visual editing with the flexibility of code. A seamless workflow, further complemented by device previewing, version control and easy sharing. Pioneer new interaction patterns and create groundbreaking apps. The design and prototyping tool preferred by product teams at startups, agencies and Fortune 500s worldwide. …


a technical community on Slack

Image for post
Image for post
Join Android Developers Mansion on Slack — Invitation

Our Android team decided to start an Android Developers Community with the purpose of sharing technical information, articles, and problem-solving. Now the community has been created on Slack!

Please join us if you are interested in Android Development and help us in this regard...

You can join Android Mansion community on Slack using this link:

  • please enter your email address
  • enter “android” as invite token
  • and then check your mailbox for invitation link from Slack.

http://mohsenoid.com


JetBrains JVM Debugger Memory View plugin

Image for post
Image for post
JetBrains JVM Debugger Memory View plugin

During my recent R&D activities looking for new tools to improve my development experience and making life easier with Android Studio, I found a useful plugin which I have never heard before. This is why I decided to write about this mighty tool and how it helps me with memory debugging my applications.

What is the plugin about?

According to plugin page:

This plugin extends the built-in JVM debugger with capabilities to explore objects in the JVM heap during a debug session.

The Memory View shows you the total number of objects in the heap grouped by their class name.

When you’re stepping over the code, the Diff column shows how the number of objects changes between debugger stops. This way you can easily see how the code you’re stepping over affects the heap. …


Image for post
Image for post

Using MVP we are always busy with interfaces to transfer different messages from presenter layer to view layer and presenting them to the user, But when it comes to error handling, are all these methods required and likely to get fired or even predictable?

What is the problem exactly?

  • showErrorOnOffline()
  • showErrorOnServiceNotResponding()
  • showErrorOnUnableToParseResult()
  • showErrorOnNoResponse()
  • and we know that there could be more…

Implementing a sample Android Application using MVP, RxJava, Dagger 2, Retrofit2, Test, and all the brand new modern methods and libraries

Previously on this article…

Image for post
Image for post

Let’s think that you have studied part1, part2, part3, and part4 which means you know everything about the sample project’s modules and structure, also get more familiar with Dagger usage in wiring up MVP layers and know the use of Retrofit for connecting to network APIs and learn how RxJava and RxAndroid benefit the project.

now let’s continue…

Test, Test, and Test… Why?

While you are working on an Application or any Software project, usually product owner comes with new ideas and features that make the project shinier! so you start to develop the way that everyone gets happy and don’t miss the deadline either, but god knows how you broke other parts of the project by adding new feature codes and changing other modules to fit your new codes. …


Implementing a sample Android Application using MVP, RxJava, Dagger 2, Retrofit2, Test, and all the brand new modern methods and libraries

Previously on this article…

Image for post
Image for post

Let’s think that you have studied part1, part2 and part3 of this article which means you know everything about the sample project’s modules and structure, also get more familiar with Dagger usage in wiring up MVP layers and know the use of Retrofit for connecting to network APIs.

now let’s continue…

RxJava is a revolution, truth or fiction!

During whole my career as a software developer I can say that RxJava is one of the best changes after Lambda expressions in Java 8. …


Implementing a sample Android Application using MVP, RxJava, Dagger 2, Retrofit2, Test, and all the brand new modern methods and libraries

Previously on this article…

Image for post
Image for post

Let’s think that you have studied part1 and part2 which means you know everything about the sample project’s modules and structure and also get more familiar with Dagger usage in wiring up MVP layers.

now let’s continue…

Let’s get into network and API:

Almost all mobile application communicate with their services using the internet. Retrofit is a perfect library contributed by Jake Wharton which can always come handy and help you with developing a network layer for your Android application.

Long story short, in this project Retrofit, uses an interface called MarvelApi which shows the way to…

About

Mohsen Mirhoseini

I am a senior software engineer with a passion for Android development. A computer geek who cannot resist Mobile apps, IoT, Tech talks, and video gaming.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store