DEV Community


Posted on • Originally published at Medium on

Main Ingredients for Starting a New Android Native Project (Checklist)

[Initial publish date: 20 Sept 2018]

P/S: This post has been delayed from time to time. It’s better to have an ugly baby at first, to be edited from time to time

You may jump to *Fundamental / Basic of Android App * straight

Nasi Lemak, famous all-time cuisine (breakfast, lunch or even dinner) for Malaysian

Nasi lemak (literally means oily or fatty rice in Malay language)*, a well-known all-time Malaysian cuisine with price ranged from RM2 (You probably can get it with a lower price at kampung, which means village in Malay language) to RM80 per serving , based on its ingredients, specialities and the location of selling it.

Nasi lemak - Wikipedia

Basic Ingredients of Nasi Lemak

In order for a dish to be called as Nasi Lemak , it MUST consists of :

  • Fragrance rice cooked with coconut milk and Pandan leaves
  • Cucumber slices
  • Egg
  • Ikan bilis (which means anchovies in Malay language)
  • Fried peanut
  • Sambal (Chili paste, normally with different recipes)

Variation of Nasi Lemak

Nasi Lemak is mentioned as a traditional Malay dish. As a result of the historical migrations, colonisations, multiracial and multicultural environment of Malaysia, Nasi Lemak now comes in many variations.

Photo source:

Most of the Nasi Lemak stalls come with their very own Sambal recipes, specialities or additional dishes for the customer to add on.

Customer can always choose to add chicken, fish, beef, mutton, seafood, sotong (squid in Malay language)

and EVEN…

LOBSTER!! to their very basic Nasi Lemak.

The price varies depending on customer’s selection.

Nasi Lemak Lobster, photo from

Photo by Ben Kolde on Unsplash

Similarly, building an Android app from stretch is like cooking Nasi Lemak with the basic ingredients.

A developer can always customise and add features to the app to make it special and unique.

Let’s take a look on what we shall take into considerations while building an Andorid app from scratch.

Photo by William Iven on Unsplash

Fundamental / Basic of Android App

(A) App Settings

  • Programming language selection Kotlin* or Java? Personally, I would prefer to have Kotlin. Why? let’s see my post posted earlier

The Road Not Taken? — Kotlin or Java

P/S: * Developer can make a decision based on project timeline, familiarity to the language, further technical supports from third party (eg: client SDK)

  • Package name and app name
  • Build target and backward compatibility
  • Gradle (configuration and dependencies)
  • Screen Orientation
  • Permissions
  • Backward compatibility (Android X)

(B) View / Design

  • Style
  • Icons and Assets (Prototype), icons, font, color code: primary, accent…..
  • Data binding
  • Placeholder
  • Keyboard interaction
  • Input Validation

(C) App Flow / Navigation

How would these affects the code architecture

  • Drawer Navigation
  • Bottom Navigation
  • Up Navigation

(D) Internet Connections

  • Offline state — What to be displayed and how shall we handle

(E) Default Error Messages (Error and Exceptions)

(F) Analytics

  • Crashlytics/ Fabric
  • Google Analytics

(G) Third- party libraries

  • Photo loading library

(H) Design Pattern and App Architecture

Life cycle (low memory etc)

Architecture/ Skeleton


Activity / Fragment

Add - Ons

(1) API

  • API call (Postman/ Paws)
  • Mock data
  • * API written by third party/client — Are the values and return value legit

(2) Data Storage Option

  • OrmLite
  • greenDao
  • LiveRoom etc

(3) Other features

  • Authentication (Facebook etc)
  • Push Notifications
  • Location based feature

Photo by Jonathan Körner on Unsplash

Rome was not built in a day

It is always okay to have an ugly baby at first, and we build, improve, beautify on top of that.

Happy exploring!

Top comments (0)