1. Expectations from an Android Developer
i. Android Engineer: Knows basics of programming, can work in android team.
ii. Senior Android Engineer: Knows UI-based development, can be responsible for a small app.
iii. Android Lead: Design + Architecture of complex apps.
2. OOPs Concepts
i. Interfaces, Abstract Classes
ii. Collection Framework - ArrayList, HashMap, Iterator
iii. Visibility (public/private/package) and Inheritance
iv. Exceptions, try-catch syntax
3. Basics of Android
i. Activities and Layouts
ii. Project structure (res, src, manifest etc)
iii. Layouts and UI, XML
4. Event-driven programs (Conceptual)
1. event-driven vs procedural programs
2. concept of ‘view state’
3. UI event listnets
4. etc
5. Important Android Concepts
i. Activity Lifestyle
ii. Components: Activity, Service, Recievers, Providers
iii. Intents
iv. Ids, relations, dp/sp measurements in XML
v. onClickListener, findViewById & view-binding
vi. ListView, RecyclerView, dynamic data
vii. Projects: Calculator, TicTacToe
6. Architecture and State Management (Conceptual)
i. MVC, MVP, MVVM, concept of *MV pattern
ii. Synchronising state and data b/w model and view
iii. Separation of concerns
iv. Stateless and stateful components
v. Persistence of state
vi. Propagation of events
7. Android Architecture Components
i. Fragments and fragment lifecycle
ii. ViewModel, LiveData, and Repository Pattern for MVVM Apps
iii. Saving and restoring state across app and activity restarts
iv. Saving data in local DB using SQLite and Room (ORM)
v. Projects: Task List Manager, Notes App
8. Libraries for Internet Driven Apps
i. OkHttp & Retrofit for: Network calls and REST API libraries
ii. Glide for: Image rendering
iii. Moshi/GSON/Jackson: Serialization frameworks for JSON data
iv. Main Thread vs Background Threads and Basic Coroutines
v. Projects: Github Trending Repo Tracker, Instagram Clone with Imgur API
9. Advanced Language/Platform Concepts
i. Multi-threading, Thread-pool executors
ii. Race conditions, Synchronized, Volatile
iii. OOP Design Patterns: Builder, Factory, Singleton
iv. HLD Patterns
a. Clean Architecture
b. Domain Driven Developments
c. Modularization
d. Dependency Injection (Dagger/Koin/Hilt)
v. RxJava and Reactive Programming
10. Advanced Android Concepts
i. Runtime-permission management
ii. Background tasks, WorkManager, AlarmManager
iii. Android OS providers - Contacts, SMS, Storage access APIs
iv. Audio/Video local and streaming with ExoPlayer
v. GPS, LocationManager, Google Maps API
vi. Android Sensor framework, gesture detection
vii. Firebase Analytics, Push Notification, ML Kit
11. Testing & Automation
i. Unit Testing and Instrumentation Testing Projects
ii. Robo Scripts, Espresso Tests
iii. Mockito, Mokka mocking frameworks
iv. CI/CD integrations, build and deploy pipelines
12. Managing Large Android Projects
i. Projects with 100+ gradle modules
ii. Custom gradle build scripts
iii. Gradle alternatives (Buck, Bazel)
iv. Custom View Components (writing views in Kotlin instead of XML)
v. Custom patterns for RecyclerViews, BaseActivity, BaseFragment with common reusable components
vi. Detecting memory leaks with LeakCanary
vii. Performance Optimisation through Android Profiler
13. Being Up-to-date
i. Watch Google I/O
ii. Jetpack Compose
iii. Dynamic Delivery and Feature Modules
iv. Animations with MotionLayout
1. ls - view contents of directory (list) 2. pwd - path of the current directory 3. cd - change directoryn 4. mkdir - make new directory 5. mv - move files / rename files 6. cp - copy files 7. rm - remove files
8. touch - create blank new file 9. rmdir - delete directory 10. cat - list content of file to terminal 11. clear - clear terminal window 12. echo - move data into a file 13. less - Read text file one screen at a time 14. man - show manual of Linux commands
1. We Are Legion – The Story Of The Hacktivists -lnkd.in/dEihGfAg 2. The Internet’s Own Boy: The Story Of Aaron Swartz - lnkd.in/d3hQVxqp 3. Hackers Wanted - lnkd.in/du-pMY2R 4. Secret History Of Hacking -