Android BootCamp at Half Time — Batch one (23rd Feb 2019)

Dheeraj Andra
MindOrks
Published in
3 min readMar 27, 2019

So, as we have approached half time in our MindOrks Bootcamp, let’s look at what all awesome topics we have covered.

In the first lecture, on 23rd February 2019, we started with

  • What the aim of this bootcamp course is
  • What can be expected in this process (from the learners and the course- vice-versa)
  • Java Portability, ByteCodes, JVM and JIT in Android, Dex Compiler, ART and DVM, AOT
  • Memory Management with Heap and Stack
  • String Pool, Garbage collection and Memory leaks

This lecture gave us a total insight on why should we adopt good programming practices to achieve proper Memory Management and how the byte code process takes place in Android.

In the second lecture, on 24th February 2019, we understood

  • The fundamental topic of Threading
  • Working and understanding of Single threaded System, Multi-Threaded System
  • Concept of Synchronisation
  • Monitor, Executorservice, Locks, Atomicity, and DeadLock with examples.

This lecture helped us in understanding how Threading plays a vital role in Software development

In the third lecture, on 02nd March 2019, we understood

  • The importance of Kotlin language including why it is Better, concise, safe and interOperable
  • Specific features of Kotlin
  • val and var, Data Class, open keyword, Destructuring Declarations, init block, static in kotlin, mutability, and immutability in kotlin, Singleton in Kotlin
  • Default parameter concept in functions
  • Higher Order expressions and Lambda Expressions, Unit in kotlin
  • Extension functions and standard scope functions like let, also, apply, run, with, it keyword in kotlin
  • lateinit, lazy and sealed classes in kotlin, visibility modifier, coroutines
  • How to get most out of Kotlin

This lecture helped us in understanding How awesome Kotlin is for Android development

In the fourth lecture, on 03rd March 2019, we understood

  • The gist of Architectural components
  • Lifecycle aware components
  • What Lifecycle, LifecycleOwner and LifeCycle Observer means
  • What is ViewModel and LiveData along with Database designing and concept of Room

This lecture helped us in understanding how architectural components make our life easy

In the fifth lecture, on 09th March 2019, we understood one of the most important concepts for Android Development, RxJava. We discussed

  • What is RxJava?
  • Why is it called RxJava and how to use it
  • 3O’s of RxJava
  • Different types of Schedulers
  • Operators like Map, zip, FlatMap, toList, merge, concat, map vs Xmap, implementing search using RxJava, Debounce, filter, DistinctUntilchanged, and switchMap
  • Different types of Observables along with RxJava advantages.

This lecture helped us in understanding how complicated use cases can be resolved simply using RxJava

In the sixth lecture, on 10th March 2019, we understood one of the important concepts every Software developer should be aware of. We discussed

  • The role of architecture in Android applications with real-time examples,
  • What are the design principles of good software including separation of concern
  • Dependency management and writing tests
  • MVC vs MVP vs MVVM, advantages, and disadvantages with the comparison
  • MVVM blueprint using Architectural components
  • How to use Live Data and View Model with Live example

This lecture helped us in understanding the importance of a design pattern in software development

In the seventh lecture, on 16th March 2019, we discussed and understood

  • what Dependency Management is
  • How good design helps in good reusability
  • Issues wrt Code Testing without DI
  • Inversion of Control(IOT) and Dependency Injection(DI)
  • Historical evolution of Dagger 2 and different types of annotations used in Dagger
  • How Dagger helps in achieving DI with relevant examples

This lecture helped us in understanding how to write clean code using Dependency Injection

In the eight lecture, on 17th March 2019, we discussed and understood

  • What is Databinding?
  • Advantages of Databinding and how it helps in code reduction
  • How to use Databinding in MVVM?
  • Advantages of LiveData over ObservableFields for Databinding
  • One-way vs Two-way Binding
  • Binding Adapter and Inverse Binding Adapter
  • Introduction to Binding Methods and Inverse Binding Methods
  • Important points to remember during Databinding

This lecture helped us in understanding the usage of Databinding with MVVM, thereby reducing the code size.

That's not just it, the awesome part is we get to try these concepts by applying them with proper assignments and evaluation….

Want to get enrolled and be a part of this great learning experience? Enroll here.

Thank you for your time.

--

--