Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to become a better (Android) developer

Avatar for Jan Hudzik Jan Hudzik
October 05, 2017

How to become a better (Android) developer

There are many ways every developer can get better. We can gain more knowledge, we can share it effectively with the others, we can take some actions in order to become more productive or to step out of our comfort zone.

In my talk I will go through every of these (and some more) giving references to the resources (books, sites, presentations, tools, plugins etc) I find helpful in getting better. Core part of my presentation can be applied to any software developer regardless of the technology, but the references will be mainly Java, Kotlin and Android specific.

Avatar for Jan Hudzik

Jan Hudzik

October 05, 2017

Other Decks in Programming

Transcript

  1. PRINCIPLES OF PROGRAMMING • SOLID principles • Separation of concerns

    • DRY • KISS • YAGNI • POLA • The Boy Scout Rule • (and much more…)
  2. DESIGN PATTERNS • Abstract Factory • Adapter • Bridge •

    Builder • Chain of responsibility • Command • Composite • Converter • Data Access Object • Data Bus • Decorator • Delegation • Dependency Injection • Facade • Factory method • Feature toggle • Flyweight • Interpreter • Iterator • Lazy Loading • Mediator • Memento • Mutex • Null Object • Observer • Prototype • Proxy • Publish Subscribe • Repository • Singleton • State • Strategy • Template Method • Thread Pool • Value Object • Visitor (and much much more…)
  3. CLEAN CODE ’Clean Code’ Robert C. Martin • Meaningful Names

    • Functions • Comments • Formatting • Objects and Data Structures • Error Handling • Unit Tests • Classes • Systems • Concurrency
  4. ANDROID DOCS - TRAINING https://developer.android.com/training • Best practices for User

    Interface • Best practices for Performance • Best practices for Background Jobs • Best practices for Security & Privacy • Testing Apps on Android
  5. ONLINE COURSES - UDACITY https://developers.google.com/training/android • Android Development for Beginners

    • Android Development Fundamentals • Advanced Android App Development • UX Design for Mobile Developers • Material Design for Android • Android Performance • Firebase in a Weekend • Gradle for Android and Java
  6. CODELABS (EXAMPLES) https://codelabs.developers.google.com/?cat=Android • Android Network Security Configuration • Automated

    Performance Testing • Build Your First Android App in Kotlin • Build an App with Architecture Components • Android life-cycle aware components • Firebase Android • Keep Sensitive Data Safe and Private • Build your First Android Instant App
  7. ONLINE COURSES - CASTER.IO https://caster.io • Detecting memory leaks with

    LeakCanary • Git in Android Studio • RxJava 2 • Mockito • Model View Presenter with Android • Realm • TDD with Espresso • Android Build Variants
  8. BLOGS • Android Developers Blog • Google Developers Blog •

    Styling Android • AndroidPub • Google Developers Experts (Medium) • Kotlin Blog • IntelliJ IDEA Blog
  9. FRAGMENTED PODCAST (EPISODES) http://fragmentedpodcast.com/episodes/all • Android Architecture Paging Library •

    Displays, CPU’s, GPU’s and Color • Make your apps instant • 10 Books Android developers should read • Ten Testing Strategies • Taming the activity lifecycle • An honest discussion about Realm • The state of event bus(es) today • Smoke and Mirror Android UI tricks
  10. ANDROID DEVELOPERS BACKSTAGE PODCAST http://androidbackstage.blogspot.com • Android Internals • Kotlin-n-stuff

    • Project Treble - for the HAL of it • Graphics • Architecture Components 2 - Persistence • Architecture Components 1 - Lifecycle • Things • Profiler • Emulator
  11. ANDROID ARCHITECTURE BLUEPRINTS https://github.com/googlesamples/android-architecture • todo-mvp • todo-mvp-clean • todo-mvp-dagger

    • todo-mvp-rxjava • todo-mvp-fragmentless • todo-mvvm-databinding • dev-todo-mvvm-rxjava • dev-todo-mvp-room • dev-todo-mvp-kotlin
  12. OPEN SOURCE CONTRIBUTIONS • Your app / library • Fix

    bugs, typos • Refactor • Add unit test • Write documentation • Submit issue • Resolve issue • Propose new feature