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

Tips and tricks for a successful Android application

Tips and tricks for a successful Android application

THAT Conference 2018

C887ad592770a197f114d0a1d3e3a5a7?s=128

Jorge Coca

August 06, 2018
Tweet

Transcript

  1. Tips and tricks for a successful Android application - Jorge

    Coca -
  2. None
  3. ...first things first

  4. Jorge, who do you think you are!?

  5. → Released over 20 apps → Mostly Android, but some

    iOS too → Half of them have been a disaster!! → ... and the other half are doing pretty good :) → Worked alone, small teams... and large and internationals teams
  6. Those who do not learn history are doomed to repeat

    it — George Santayana
  7. Android was initially designed to be a camera operating system

  8. Cupcake & Donut April 2009 → First major release →

    Linux kernel → Java & Eclipse ADT → Main widgets and SDK components → Voice entry support → Gesture framework
  9. Eclair October 2009 → Multi account support → Bluetooth →

    Multitouch → Camera supports flash ⚡
  10. Froyo May 2010 → Chrome → Push notifications via C2DM

    → Flash and GIFs → Improved Market
  11. Gingerbread December 2010 → NFC → Improvementes on UI →

    Support for front camera → Google Wallet (on Nexus S) → Nexus One
  12. Honeycomb February 2011 → Optimized for tablet support → Holo

    interface → Welcome Fragments!
  13. Ice Cream Sandwich October 2011 → Holo for phones →

    Major update of the OS → Editor's choice → Android is here to stay
  14. None
  15. Jelly Bean June 2012 → Focus on performance → Support

    library & → New bluetooth stack → Dev focus on quality → Jake Wharton's first conference
  16. KitKat October 2013 → Refreshed interfaced → Android Wear →

    Nexus 5 and wearables → Android Studio → Gradle
  17. Lollipop November 2014 → Material Design → Dalvik → Multiple

    SIM card → WebView distributed over PlayStore → Dev focus on performance #perfMatters → Android One
  18. Marhsmallow October 2015 → Android for Work → Doze →

    Fingerprint → Runtime permissions → Battery optimizations
  19. Nougat August 2016 → Android beta program → Daydream →

    Multiwindow support → Picture in picture
  20. Oreo August 2017 → Kotlin → Architecture components → Focus

    on modular architectures → Adaptive icons → Notification improvements → Google Play protect → Android Go
  21. Challenges → Have clear goals and expectations → Invest your

    time and energy where it matters → Build for everyone → Crowded market. Be original → Be the first... or be the best
  22. Goals and expectations → Research your market → Measurable goals

    → Realistic expectations → Indie vs. small shop vs. corporation → Functionality vs design... (or both)
  23. Invest your time and energy where it matters

  24. Time and energy → Your cloud is your first common

    layer. Use it! → Dedicate efforts to the main use case of your app → What can you share between iOS and Android?
  25. Time and energy: cross platform → Easiest: WebView → WebView

    with native bridge: custom, Ionic... → Xamarin → Kotlin Multiplatform → ReactNative → Flutter
  26. Time and energy Android native

  27. Stop using Eclipse

  28. ... and Java!

  29. Kotlin → Better develop experience → Interop with existing Java

    → Null safety → Google working on Kotlifying APIs → Easier to do "more complex" things
  30. None
  31. Kotlin Do not force unwrap val jorge: Person? = null

    jorge!!.canSing CRASH! ... also, I sing horribly
  32. Kotlin Hello default paramenters! Bye Factories! class Person( val name:

    String, val age: Int, val canBreath: Boolean = true, val canSing: Boolean = true) ... unless you are like me
  33. Kotlin Sealed classes to express more complex enums sealed class

    Vehicle data class Car(val brand: String): Vehicle() data class Bike(val isMountainBike: Boolean): Vehicle() object class MagicCarpet : Vehicle()
  34. Kotlin: other tips → Data classes are your friends →

    Easy singletons with object → Synthetic extensions to avoid boilerplate
  35. Android → The smaller your Activities are, the better →

    The smaller your Fragments are, the better → The smaller your Services, the better Remove your business logic from SDK components
  36. None
  37. Android → MVP, MVVM, VIPER, RIBs... → Only use libraries

    that make you feel comfortable → Do not overuse libraries → The smaller your APK is, the better! -> Code for everyone
  38. Never stop learning

  39. None
  40. None
  41. @jcocaramos

  42. None