Skip to content

Latest commit

 

History

History
157 lines (152 loc) · 5.53 KB

File metadata and controls

157 lines (152 loc) · 5.53 KB

APP DEVELOPMENT

A Roadmap to Learn

First of all, there are 3 pathways to learn app development:

  1. Native Android App Development: used to create apps that can run only on Android devices, Requires knowledge of Kotlin and XML.
  2. Native iOS App Development: used to create apps that can run only on iOS devices. Requires knowledge of Swift.
  3. Cross-platform App Development: used to create apps that can run on various operating systems. Most popular frameworks for cross-platform development are Flutter(can be used to create Android, iOS, Windows, Mac, Linux and even Web app) and React Native(Android, Android TV, iOS, macOS, tvOS, Web, Windows and UWP). Requires knowledge of Dart and Javascript for Flutter and React Native respectively

Out of these 3, Flutter is widely used nowadays.

Programming

This action could be seen as a requirement. Before learning Android, become familiar with these programming languages.

  • Java Programming Language
  • Kotlin Programming Language
  • Sound Knowledge of XML (Extensible Markup Language)

Android Studio

Knowing your tools before using them is preferable. The IntelliJ IDEA software from JetBrains was used to create Android Studio, which is the official Integrated Development Environment for Google's Android operating system.

File Structure:

  • AndroidManifest.xml file
  • Java file
  • Drawable file
  • Layout file
  • Mipmap file
  • Colors.xml file
  • Strings.xml file
  • Styles.xml file
  • Build.gradle(Module: app) file

Android Studio Overview:

  • Create a new project
  • Reopen, close, save the project
  • Create a new activity, classes, drawable resource files
  • Run the app on AVD of Emulator or in a real device etc.

Android Components

An Android application is made up of a few essential building pieces. The application manifest file, which includes a description of each component and how they work together, binds these loosely connected components together.

Activity:

  • Activity life cycle
  • Handle Activity State Changes
  • Understand Tasks and Back Stack
  • Processes and Application Lifecycle

Services:

  • Types of Android Services
  • The Life Cycle of Android Services

Content Provider:

  • Content URI
  • Operations in Content Provider
  • Working of the Content Provider
  • Creating a Content Provider

Broadcast Receiver:

  • Implicit Broadcast Exceptions

Simple UI Design

Once you have a general understanding of the various Android components, you can explore some of the straightforward UI designs that are provided below.

Explore different layouts:

  • Frame
  • Linear
  • Relative
  • Constraint

View Elements:

  • TextView
  • EditText
  • Buttons
  • ImageView

Intent:

  • Implicit
  • Explicit
  • Intent Filter

Complex UI Design

When you are comfortable with simple UI design, you should only go on to sophisticated UI design tasks like:

  • ListView
  • RecycleVIew
  • Fragments
  • Dialogs
  • Toast
  • Bottom Sheets
  • Navigation Drawer
  • Tabs
  • Material Design
  • Some inserting Animations

Storage

In Android, there are three types of the storage system:

  • Shared Preferences
  • File System
  • Database
  • RoomDB

Build

  • Gradle
  • Debug/ Release Configuration

Threading

  • Threads
  • Looper

Debugging

Debugging abilities are among a developer's most crucial skills. In order to develop, the following must be learned:

  • Exceptions
  • Error Handling
  • Logging
  • Memory Profiling

Memory Leaks

  • Cause of memory leaks
  • Detecting and fixing memory leaks
  • Context

Third-Party Libraries

Image Loading Libraries

  • Glide
  • Picasso
  • Fresco
  • COIL

Dependency Injection

  • Dragger

Networking

  • Retrofit

Multithreading

  • Coroutines
  • Rxjava

Android Jetpack

According to the company's website, Android Jetpack is a collection of architectural guidelines, tools, and libraries that make it quick and simple to create top-notch Android apps. So that you may concentrate on what makes your app distinctive, it provides common infrastructure code.

  • AppCompat library
  • Architecture components,
  • Animation and transitions
  • Android Ktx
  • Navigation
  • Paging
  • Slices
  • WorkManager

Android Architecture

The three famous architecture in the Android world are:

  • MVVM (Model–View–ViewModel)
  • MVI (Model-View-Intent)
  • MVP (Model View Presenter)

Firebase

  • FCM (Firebase Cloud Messaging)
  • Analytics
  • Remote Config
  • App Indexing

Unit Testing

  • Local Unit Testing
  • Instrumentation Testing

Security

  • Encrypt / Decrypt
  • Proguard

App Release

  • Signed APK
  • Play Store

RESOURCES

Native Android:

Flutter:

iOS: