Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Tips and tricks for a successful Android applic...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Jorge Coca
August 06, 2018
Technology
0
110
Tips and tricks for a successful Android application
THAT Conference 2018
Jorge Coca
August 06, 2018
Tweet
Share
More Decks by Jorge Coca
See All by Jorge Coca
Flutter: a journey of productivity and happiness
jorgecoca
1
160
expect(isTestingInFlutterEasy, isTrue);
jorgecoca
1
90
Flutter at scale: 2020 Edition
jorgecoca
5
610
Effective Dart for mobile developers
jorgecoca
8
2.1k
Flutter at scale
jorgecoca
2
1.4k
Our Journey To Flutter
jorgecoca
2
420
Is Flutter truly that easy?
jorgecoca
1
310
let swift == val kotlin -> Why iOS is so important for Android, and vice versa
jorgecoca
1
470
What's behind BMW Connected?
jorgecoca
0
140
Other Decks in Technology
See All in Technology
Phase02_AI座学_応用
overflowinc
0
2.5k
ABEMAのバグバウンティの取り組み
kurochan
1
600
ThetaOS - A Mythical Machine comes Alive
aslander
0
140
20260320_JaSST26_Tokyo_登壇資料.pdf
mura_shin
0
110
BFCacheを活用して無限スクロールのUX を改善した話
apple_yagi
0
110
ADK + Gemini Enterprise で 外部 API 連携エージェント作るなら OAuth の仕組みを理解しておこう
kaz1437
0
150
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.8k
PostgreSQL 18のNOT ENFORCEDな制約とDEFERRABLEの関係
yahonda
0
110
既存アプリの延命も,最新技術での新規開発も:WebSphereの最新情報
ktgrryt
0
150
イベントで大活躍する電子ペーパー名札を作る(その2) 〜 M5PaperとM5PaperS3 〜 / IoTLT @ JLCPCB オープンハードカンファレンス
you
PRO
0
190
Zero Data Loss Autonomous Recovery Service サービス概要
oracle4engineer
PRO
4
13k
20年以上続く PHP 大規模プロダクトを Kubernetes へ ── クラウド基盤刷新プロジェクトの4年間
oogfranz
PRO
0
160
Featured
See All Featured
Future Trends and Review - Lecture 12 - Web Technologies (1019888BNR)
signer
PRO
0
3.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
141
35k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
130
Ethics towards AI in product and experience design
skipperchong
2
230
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
118
110k
Jess Joyce - The Pitfalls of Following Frameworks
techseoconnect
PRO
1
110
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
1
140
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
150
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
150
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
JAMstack: Web Apps at Ludicrous Speed - All Things Open 2022
reverentgeek
1
400
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