Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Tips and tricks for a successful Android applic...
Search
Jorge Coca
August 06, 2018
Technology
130
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tips and tricks for a successful Android application
THAT Conference 2018
Jorge Coca
August 06, 2018
More Decks by Jorge Coca
See All by Jorge Coca
Flutter: a journey of productivity and happiness
jorgecoca
1
170
expect(isTestingInFlutterEasy, isTrue);
jorgecoca
1
110
Flutter at scale: 2020 Edition
jorgecoca
5
630
Effective Dart for mobile developers
jorgecoca
8
2.2k
Flutter at scale
jorgecoca
2
1.4k
Our Journey To Flutter
jorgecoca
2
440
Is Flutter truly that easy?
jorgecoca
1
320
let swift == val kotlin -> Why iOS is so important for Android, and vice versa
jorgecoca
1
490
What's behind BMW Connected?
jorgecoca
0
160
Other Decks in Technology
See All in Technology
現場で役立つ技術負債の効果的な返済方法
masuda220
PRO
11
5.1k
エージェントはローカル、検証はMicroVM — Lambda MicroVMsでつくるServerless CI
fujioka6789
3
740
AIエージェントを最高のパートナーに育てる方法|評価と判断軸を育てる5つのステップ
koichiaoki
1
160
Oracle Cloud Infrastructure(OCI):Onboarding Session(はじめてのOCI/Oracle Supportご利⽤ガイド)
oracle4engineer
PRO
2
20k
技術的負債から考える、AI時代のエンジニアリング投資 — ビズリーチの技術的負債と向き合った経験から、変更し続けられるソフトウェアを考える/ technical-debt-con2026
visional_engineering_and_design
4
3.7k
C#未経験の僕がAIに読めるコードを書かせるまで
maguroalternative
0
260
Vibe Coding で作ったプロダクトをどう安全に動かすか / How to Safely Run Products Built with Vibe Coding
glidenote
0
530
Claude Codeを「使うほど育つ」AI秘書にするノウハウ
minorun365
PRO
33
31k
え、こんなに早く改修できるの?──新人エンジニアとスクラムマスターの2人が語る、AI×アジャイル開発の現場
ysasago
2
700
「今盗んで、後で解く」に備える ― AWSのポスト量子暗号入門
yama3133
1
180
Oracle Cloud Network Path Analyzerを試してみた/I Tried Out Oracle Cloud Network Path Analyzer
masakiokuda
1
110
C#コードの結合を可視化する Roslyn解析による設計改善と リファクタリング判断
dora56
0
540
Featured
See All Featured
From π to Pie charts
rasagy
1
380
We Are The Robots
honzajavorek
0
380
Connecting the Dots Between Site Speed, User Experience & Your Business [WebExpo 2025]
tammyeverts
11
1k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
670
Being A Developer After 40
akosma
91
590k
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
500
Building Applications with DynamoDB
mza
96
7.2k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
340
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.5k
My Coaching Mixtape
mlcsv
0
320
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
250
Skip the Path - Find Your Career Trail
mkilby
1
240
Transcript
Tips and tricks for a successful Android application - Jorge
Coca -
None
...first things first
Jorge, who do you think you are!?
→ 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
Those who do not learn history are doomed to repeat
it — George Santayana
Android was initially designed to be a camera operating system
Cupcake & Donut April 2009 → First major release →
Linux kernel → Java & Eclipse ADT → Main widgets and SDK components → Voice entry support → Gesture framework
Eclair October 2009 → Multi account support → Bluetooth →
Multitouch → Camera supports flash ⚡
Froyo May 2010 → Chrome → Push notifications via C2DM
→ Flash and GIFs → Improved Market
Gingerbread December 2010 → NFC → Improvementes on UI →
Support for front camera → Google Wallet (on Nexus S) → Nexus One
Honeycomb February 2011 → Optimized for tablet support → Holo
interface → Welcome Fragments!
Ice Cream Sandwich October 2011 → Holo for phones →
Major update of the OS → Editor's choice → Android is here to stay
None
Jelly Bean June 2012 → Focus on performance → Support
library & → New bluetooth stack → Dev focus on quality → Jake Wharton's first conference
KitKat October 2013 → Refreshed interfaced → Android Wear →
Nexus 5 and wearables → Android Studio → Gradle
Lollipop November 2014 → Material Design → Dalvik → Multiple
SIM card → WebView distributed over PlayStore → Dev focus on performance #perfMatters → Android One
Marhsmallow October 2015 → Android for Work → Doze →
Fingerprint → Runtime permissions → Battery optimizations
Nougat August 2016 → Android beta program → Daydream →
Multiwindow support → Picture in picture
Oreo August 2017 → Kotlin → Architecture components → Focus
on modular architectures → Adaptive icons → Notification improvements → Google Play protect → Android Go
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
Goals and expectations → Research your market → Measurable goals
→ Realistic expectations → Indie vs. small shop vs. corporation → Functionality vs design... (or both)
Invest your time and energy where it matters
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?
Time and energy: cross platform → Easiest: WebView → WebView
with native bridge: custom, Ionic... → Xamarin → Kotlin Multiplatform → ReactNative → Flutter
Time and energy Android native
Stop using Eclipse
... and Java!
Kotlin → Better develop experience → Interop with existing Java
→ Null safety → Google working on Kotlifying APIs → Easier to do "more complex" things
None
Kotlin Do not force unwrap val jorge: Person? = null
jorge!!.canSing CRASH! ... also, I sing horribly
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
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()
Kotlin: other tips → Data classes are your friends →
Easy singletons with object → Synthetic extensions to avoid boilerplate
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
None
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
Never stop learning
None
None
@jcocaramos
None