SlideShare a Scribd company logo
1 of 74
ANDROID
DEVELOPER
TOOLBOX
Shem Magnezi
@shemag8 • shem8.github.com
New
Developers
Libraries
Resources
Tools
Libraries
Why?
Outsource your
problems
Help the
community
Why not?
Legal issues
Old / Buggy
code
App size
Don’t
outsource your
core logic
Basics
Support
Library
Provide backward
compatible versions
of Android
framework APIs
- ActivityCompat
- FragmentActivity
- ContextCompat
- IntentCompat
- Loader
- RecyclerView
- ViewPager
- GridLayout
- PercentFrameLayout
- DrawerLayout
- SwipeRefreshLayout
- CardView
- AppCompatDialogFragment
- CoordinatorLayout
- AppBarLayout
- FloatingActionButton
- TabLayout
- Snackbar
- VectorDrawableCompat
...developer.android.com/topic/libraries/s
upport-library
Google
Play
Services
take advantage of the
latest, Google-
powered features
with automatic
platform updates
distributed as an APK
through the Google
Play store.
- Google+
- Google Account
- Google Action
- Google Sign
- Google Analytics
- Google Awareness
- Google Cast
- Google Cloud
- Google Drive
- Google Fit
- Google Location
- Google Maps
- Google Places
- Mobile Vision
- Google Nearby
- Google Panorama
- Google Play
- Android Pay
- Android Wear
...developer.android.com/topic/libraries/s
upport-library
Network
Moshi
A modern JSON
library for Android
and Java.
MyObj item = new MyObj(...);
Moshi moshi =
new Moshi.Builder().build();
JsonAdapter<MyObj> adapter =
moshi.adapter(MyObj.class);
adapter.toJson(item);
adapter.fromJson(jsonStr);
github.com/square/moshi
OkHttp3
An HTTP & SPDY
client for Android and
Java applications
OkHttpClient client =
new OkHttpClient();
Request request =
new Request.Builder()
.url(url)
.build();
Response response =
client.newCall(request)
.execute();
return response.body().string();
square.github.io/okhttp
Retrofit
A type-safe HTTP
client for Android and
Java
public interface GitHub {
@GET("users/{user}/repos")
Call<List<Repo>> repos(
@Path("user") String user);
}
Retrofit retrofit =
new Retrofit.Builder()
.baseUrl("https://api.github.com")
.build();
GitHub service =
retrofit.create(GitHub.class);
Call<List<Repo>> repos =
service.repos("octocat");
square.github.io/retrofit
Persistency
Room
Abstraction layer over
SQLite to allow fluent
database access
while harnessing the
full power of SQLite.
@Entity
public class User {
@PrimaryKey
private int uid;
@ColumnInfo(name = "first_name")
private String firstName;
}
@Dao
public interface UserDao {
@Insert
Void insertAll(User… users);
@Query("SELECT * FROM user
WHERE uid IN (:userIds)")
List<User> loadAllByIds(
int[] userIds);
}
developer.android.com/training/data-
storage/room/index.html
Object
Box
The easy object-
oriented database for
small devices
BoxStore boxStore =
MyObjectBox.builder()
.androidContext(...)
.build();
Box<Person> box =
boxStore.boxFor(Person.class);
Person person =
new Person("Joe", "Green");
// Create
long id = box.put(person);
// Read
Person person = box.get(id);
// Update
person.setLastName("Black");
box.put(person);
// Delete
box.remove(person);
github.com/objectbox/objectbox-java
Room
Object
Box
Support Speed
Realm
A mobile database
that runs directly
inside phones, tablets
or wearables
github.com/realm/realm-java
class Dog extends RealmObject {
private String name;
}
Realm realm =
Realm.getDefaultInstance();
Dog dog = new Dog();
dog.setName("Rex");
realm.beginTransaction();
realm.copyToRealm(dog);
realm.commitTransaction();
Dog dog =
realm.where(Dog.class)
.equalTo("name", "Rex")
.findFirst();
Images
Glide
An image loading
and caching library
for Android focused
on smooth scrolling
github.com/bumptech/glide
GlideApp.with(cx)
.load(url)
.into(imageView);
GlideApp.with(cx)
.load(url)
.centerCrop()
.placeholder(R.drawable.ph)
.into(imageView);
Picasso
A powerful image
downloading and
caching library for
Android
square.github.io/picasso
Picasso.with(context)
.load(url)
.resize(50, 50)
.centerCrop()
.into(imageView);
Picasso.with(context)
.load(url)
.placeholder(R.drawable.ph)
.error(R.drawable.error)
.into(imageView);
Glide Picasso
More
features
Small
UI
Material
Intro
A simple material
design app intro
with cool
animations and a
fluent API.
github.com/heinrichreimer/material-
intro
Toasty
The usual Toast, but
with steroids.
github.com/GrenderG/Toasty
Coordinator
Tab Layout
Custom composite
control that quickly
implements the
combination of
TabLayout and
CoordinatorLayout.
github.com/hugeterry/CoordinatorTabL
ayout
Shimmer
Recycler
View
A custom recycler
view with shimmer
views to indicate
that views are
loading.
github.com/sharish/ShimmerRecyclerVi
ew
Ultimate
Recycler
View
A RecyclerView
with
refreshing,loading
more,animation
and many other
features.
github.com/cymcsg/UltimateRecyclerVi
ew
Photo
View
Implementation of
ImageView for
Android that
supports zooming,
by various touch
gestures.
github.com/chrisbanes/PhotoView
Dialog
Plus
Advanced dialog
solution for android
github.com/orhanobut/dialogplus
William
Chart
Android library to
create charts.
github.com/diogobernardino/WilliamC
hart
Utils
Parceler
Android Parcelables
made easy through
code generation.
@Parcel
public class Example {
String name;
int age;
/* Constructors, getters, etc. */
}
Bundle bundle = new Bundle();
bundle.putParcelable(
"key",
Parcels.wrap(example));
Example example = Parcels.unwrap(
this.getIntent()
.getParcelableExtra("key"));
github.com/johncarl81/parceler
Icepick
Android library that
eliminates the
boilerplate of saving
and restoring
instance state.
// This will be automatically saved and
restored
@State String username;
@Override public void onCreate(Bundle state) {
...
Icepick.restoreInstanceState(this, state);
}
@Override public void
onSaveInstanceState(Bundle outState) {
...
Icepick.saveInstanceState(this, outState);
}
github.com/frankiesardo/icepick
Timber
A logger with a small,
extensible API which
provides utility on top
of Android's normal
Log class.
github.com/JakeWharton/timber
@Override
public void onCreate() {
super.onCreate();
if (BuildConfig.DEBUG)
Timber.plant(
new DebugTree());
else
Timber.plant(
new NotLoggingTree());
}
Timber.v("some verbose logs here");
Joda time
Joda-Time is the
widely used
replacement for the
Java date and time
classes.
DateTime datetime = ... ;
datetime.getMonthOfYear();
datetime.getDayOfMonth();
LocalDate fromDate = ... ;
LocalDate newYear =
fromDate.plusYears(1)
.withDayOfYear(1);
Days.daysBetween(fromDate, newYear);
dateOfBirth.monthOfYear()
.getAsText(Locale.ENGLISH);
github.com/JodaOrg/joda-time
ThreeTen
ABP
An adaptation of the
JSR-310 backport for
Android.
LocalDateTime ldt =
LocalDateTime.now();
int ld = ldt.getDayOfMonth();
int lm = ldt.getMonthValue();
int ly = ldt.getYear();
ldt.withYear(2000);
ldt.plusHours(2);
ldt = LocalDateTime
.of(2005, 3, 26, 12, 0, 0, 0);
ldt.plusDays(1);
ldt.plus(24,ChronoUnit.HOURS);
github.com/JakeWharton/ThreeTenAB
P
Joda Time
ThreeTen
ABP
More
options
Size
Event Bus
Event bus for Android
that simplifies
communication
between Activities,
Fragments, Threads,
etc.
greenrobot.org/eventbus/
public class Event {
public final String message;
...
}
EventBus.getDefault()
.register(this);
@Subscribe
public void onEvent(Event event) {
// Handle event
}
EventBus.getDefault()
.post(new Event(...));
TextView view = (TextView) findViewById(R.id.view);
Butter
Knife
Field and method
binding for Android
views
jakewharton.github.io/butterknife/
@BindView(R.id.view)
TextView view;
@BindString(R.string.title)
String title;
@OnClick(R.id.submit)
public void submit() {
// Handle click
}
@Override
public void onCreate(...) {
...
ButterKnife.bind(this);
}
Android
Annotations
Fast Android
Development. Easy
maintenance.
github.com/excilys/androidannotations
@EActivity(R.layout.activty)
public class MyActivity extends
Activity {
@ViewById
EditText textInput;
@AnimationRes
Animation fadeIn;
@Click
void doTranslate(...) { ... }
@Background
void runOnBackground(...) { ... }
@UiThread
void runOnUI(...) { ... }
}
Firebase
Job
Dispatcher
A library for
scheduling
background jobs in
your Android app. It
provides a
JobScheduler-
compatible API.
github.com/firebase/firebase-
jobdispatcher-android
Job myJob =
dispatcher.newJobBuilder()
.setService(MyJobService.class)
.setTag("my-unique-tag")
.setRecurring(false)
.setLifetime(UNTIL_NEXT_BOOT)
.setReplaceCurrent(false)
.setConstraints(
ON_UNMETERED_NETWORK,
DEVICE_CHARGING
)
.setExtras(extrasBundle)
.build();
dispatcher.mustSchedule(myJob);
Dagger2
A fast dependency
injector for Android
and Java
github.com/google/dagger/
class CoffeeMaker {
@Inject Heater heater;
}
@Module
class DripCoffeeModule {
@Provides Heater
provideHeater() {
return new ElectricHeater();
}
}
ObjectGraph.create(
new DripCoffeeModule());
RxJava
&
RxAndroid
A library for
composing
asynchronous and
event-based
programs using
observable
sequences
github.com/ReactiveX/RxJava
github.com/ReactiveX/RxAndroid
Observable.just(items)
.subscribeOn(
Schedulers.newThread())
.observeOn(
AndroidSchedulers
.mainThread())
.subscribe(/* an Observer */);
WAKE UP
Tools
Layout
Inspector
Inspect your app's
view hierarchy at
runtime from
within the Android
Studio IDE.
developer.android.com/studio/debug/la
yout-inspector.html
Memory
Profiler
Helps you identify
memory leaks and
memory churn that
can lead to stutter,
freezes, and even
app crashes.
https://developer.android.com/studio/pr
ofile/memory-profiler.html
CPU
Profiler
Inspect your app’s
CPU usage and
thread activity in
real-time, and
record method
traces.
developer.android.com/studio/profile/cp
u-profiler.html
Network
Profiler
displays real time
network activity on
a timeline, showing
data sent and
received, as well as
the current number
of connections.
developer.android.com/studio/profile/n
etwork-profiler.html
The
Monkey
Generates pseudo-
random streams of
user events
https://developer.android.com/studio/te
st/monkey.html
adb shell monkey
-p your.package.name
-v 500
Developer
options
Realtime on device
debugging.
https://developer.android.com/studio/d
ebug/dev-options.html
Stetho
A debug bridge for
Android
applications
http://facebook.github.io/stetho/
Shape
Shifter
Web-app that
simplifies the
creation of icon
animations for
Android, iOS, and
the web.
shapeshifter.design/
Lottie
Parses Adobe After
Effects animations
exported as json
with Bodymovin
and renders them
natively on mobile.
airbnb.io/lottie
ALMOST
THERE
Resources
Android
Arsenal
A categorized
directory of libraries
and tools for
Android
android-arsenal.com
Android
library
statistics
Insights on what Ad
Networks, Social
SDKs and
developer tools are
present in Android
apps and what their
market shares are.
www.appbrain.com/stats/librarie
Android
Developers
Blog
The latest Android
and Google Play
news for app and
game developers.
android-developers.blogspot.co.il
Android
Developers
Backstage
A podcast by and
for Android
developers, Hosted
by developers from
the Android
engineering team.
androidbackstage.blogspot.co.il
Android
Weekly
A free newsletter
that helps you to
stay cutting-edge
with your Android
Development.
androidweekly.net
QUESTIONS?
@shemag8 • shem8.github.com
Android Developer Toolbox 2017

More Related Content

What's hot

Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recapfurusin
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Domenic Denicola
 
Connecting your phone and home with firebase and android things - James Cogga...
Connecting your phone and home with firebase and android things - James Cogga...Connecting your phone and home with firebase and android things - James Cogga...
Connecting your phone and home with firebase and android things - James Cogga...DroidConTLV
 
Aplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & JetpackAplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & JetpackNelson Glauber Leal
 
Advanced Dagger talk from 360andev
Advanced Dagger talk from 360andevAdvanced Dagger talk from 360andev
Advanced Dagger talk from 360andevMike Nakhimovich
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in AndroidRobert Cooper
 
Cnam azure 2014 mobile services
Cnam azure 2014   mobile servicesCnam azure 2014   mobile services
Cnam azure 2014 mobile servicesAymeric Weinbach
 
Google Guava - Core libraries for Java & Android
Google Guava - Core libraries for Java & AndroidGoogle Guava - Core libraries for Java & Android
Google Guava - Core libraries for Java & AndroidJordi Gerona
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards CompatibilityAngelo Rüggeberg
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseSergi Martínez
 
Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01Omar Miatello
 
Managing parallelism using coroutines
Managing parallelism using coroutinesManaging parallelism using coroutines
Managing parallelism using coroutinesFabio Collini
 
Windows 8 metro applications
Windows 8 metro applicationsWindows 8 metro applications
Windows 8 metro applicationsAlex Golesh
 

What's hot (20)

greenDAO
greenDAOgreenDAO
greenDAO
 
Open sourcing the store
Open sourcing the storeOpen sourcing the store
Open sourcing the store
 
Google I/O 2021 Recap
Google I/O 2021 RecapGoogle I/O 2021 Recap
Google I/O 2021 Recap
 
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
Callbacks, Promises, and Coroutines (oh my!): Asynchronous Programming Patter...
 
Connecting your phone and home with firebase and android things - James Cogga...
Connecting your phone and home with firebase and android things - James Cogga...Connecting your phone and home with firebase and android things - James Cogga...
Connecting your phone and home with firebase and android things - James Cogga...
 
Aplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & JetpackAplicações assíncronas no Android com
Coroutines & Jetpack
Aplicações assíncronas no Android com
Coroutines & Jetpack
 
Advanced Dagger talk from 360andev
Advanced Dagger talk from 360andevAdvanced Dagger talk from 360andev
Advanced Dagger talk from 360andev
 
What's New in Android
What's New in AndroidWhat's New in Android
What's New in Android
 
Why Sifu
Why SifuWhy Sifu
Why Sifu
 
Cnam azure 2014 mobile services
Cnam azure 2014   mobile servicesCnam azure 2014   mobile services
Cnam azure 2014 mobile services
 
Google Guava - Core libraries for Java & Android
Google Guava - Core libraries for Java & AndroidGoogle Guava - Core libraries for Java & Android
Google Guava - Core libraries for Java & Android
 
Material Design and Backwards Compatibility
Material Design and Backwards CompatibilityMaterial Design and Backwards Compatibility
Material Design and Backwards Compatibility
 
Realm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app databaseRealm or: How I learned to stop worrying and love my app database
Realm or: How I learned to stop worrying and love my app database
 
Kotlin Generation
Kotlin GenerationKotlin Generation
Kotlin Generation
 
Android query
Android queryAndroid query
Android query
 
Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01Android & Kotlin - The code awakens #01
Android & Kotlin - The code awakens #01
 
Managing parallelism using coroutines
Managing parallelism using coroutinesManaging parallelism using coroutines
Managing parallelism using coroutines
 
Windows 8 metro applications
Windows 8 metro applicationsWindows 8 metro applications
Windows 8 metro applications
 
Intro to Parse
Intro to ParseIntro to Parse
Intro to Parse
 
Parse Advanced
Parse AdvancedParse Advanced
Parse Advanced
 

Similar to Android Developer Toolbox 2017

Realm - Phoenix Mobile Festival
Realm - Phoenix Mobile FestivalRealm - Phoenix Mobile Festival
Realm - Phoenix Mobile FestivalDJ Rausch
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersBurr Sutter
 
Building Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerBuilding Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerAlex Barbosa Coqueiro
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineAndy McKay
 
Google I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsGoogle I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsRomain Guy
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Guillaume Laforge
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCJim Tochterman
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemGuardSquare
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Guillaume Laforge
 
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
 IronPython and Dynamic Languages on .NET by Mahesh Prakriya IronPython and Dynamic Languages on .NET by Mahesh Prakriya
IronPython and Dynamic Languages on .NET by Mahesh Prakriyacodebits
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDGKuwaitGoogleDevel
 
CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on AndroidSven Haiges
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Tony Frame
 
PyCon India 2010 Building Scalable apps using appengine
PyCon India 2010 Building Scalable apps using appenginePyCon India 2010 Building Scalable apps using appengine
PyCon India 2010 Building Scalable apps using appenginePranav Prakash
 

Similar to Android Developer Toolbox 2017 (20)

huhu
huhuhuhu
huhu
 
Realm - Phoenix Mobile Festival
Realm - Phoenix Mobile FestivalRealm - Phoenix Mobile Festival
Realm - Phoenix Mobile Festival
 
Cloud State of the Union for Java Developers
Cloud State of the Union for Java DevelopersCloud State of the Union for Java Developers
Cloud State of the Union for Java Developers
 
Building Your Robot using AWS Robomaker
Building Your Robot using AWS RobomakerBuilding Your Robot using AWS Robomaker
Building Your Robot using AWS Robomaker
 
Cross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App EngineCross Domain Web
Mashups with JQuery and Google App Engine
Cross Domain Web
Mashups with JQuery and Google App Engine
 
Google I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb HighlightsGoogle I/O 2011, Android Honeycomb Highlights
Google I/O 2011, Android Honeycomb Highlights
 
Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007Groovy Update - JavaPolis 2007
Groovy Update - JavaPolis 2007
 
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NCAndroid Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
Android Development w/ ArcGIS Server - Esri Dev Meetup - Charlotte, NC
 
Core Android
Core AndroidCore Android
Core Android
 
Eric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build systemEric Lafortune - The Jack and Jill build system
Eric Lafortune - The Jack and Jill build system
 
Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008Groovy Introduction - JAX Germany - 2008
Groovy Introduction - JAX Germany - 2008
 
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
 IronPython and Dynamic Languages on .NET by Mahesh Prakriya IronPython and Dynamic Languages on .NET by Mahesh Prakriya
IronPython and Dynamic Languages on .NET by Mahesh Prakriya
 
GDG Kuwait - Modern android development
GDG Kuwait - Modern android developmentGDG Kuwait - Modern android development
GDG Kuwait - Modern android development
 
CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on Android
 
Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01Googleappengineintro 110410190620-phpapp01
Googleappengineintro 110410190620-phpapp01
 
Html5 Overview
Html5 OverviewHtml5 Overview
Html5 Overview
 
Green dao
Green daoGreen dao
Green dao
 
GWT Extreme!
GWT Extreme!GWT Extreme!
GWT Extreme!
 
PyCon India 2010 Building Scalable apps using appengine
PyCon India 2010 Building Scalable apps using appenginePyCon India 2010 Building Scalable apps using appengine
PyCon India 2010 Building Scalable apps using appengine
 
Google Gears
Google GearsGoogle Gears
Google Gears
 

More from Shem Magnezi

The Future of Work(ers)
The Future of Work(ers)The Future of Work(ers)
The Future of Work(ers)Shem Magnezi
 
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...Shem Magnezi
 
Good rules for bad apps
Good rules for bad appsGood rules for bad apps
Good rules for bad appsShem Magnezi
 
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...Shem Magnezi
 
Iterating on your idea
Iterating on your ideaIterating on your idea
Iterating on your ideaShem Magnezi
 
The Redux State of the Art
The Redux State of the ArtThe Redux State of the Art
The Redux State of the ArtShem Magnezi
 
Startup hackers toolbox
Startup hackers toolboxStartup hackers toolbox
Startup hackers toolboxShem Magnezi
 
Fuck you startup world
Fuck you startup worldFuck you startup world
Fuck you startup worldShem Magnezi
 
The Future of Work
The Future of WorkThe Future of Work
The Future of WorkShem Magnezi
 
Good rules for bad apps
Good rules for bad appsGood rules for bad apps
Good rules for bad appsShem Magnezi
 
Andriod dev toolbox part 2
Andriod dev toolbox  part 2Andriod dev toolbox  part 2
Andriod dev toolbox part 2Shem Magnezi
 
Know what (not) to build
Know what (not) to buildKnow what (not) to build
Know what (not) to buildShem Magnezi
 
Android ui tips & tricks
Android ui tips & tricksAndroid ui tips & tricks
Android ui tips & tricksShem Magnezi
 

More from Shem Magnezi (13)

The Future of Work(ers)
The Future of Work(ers)The Future of Work(ers)
The Future of Work(ers)
 
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
 
Good rules for bad apps
Good rules for bad appsGood rules for bad apps
Good rules for bad apps
 
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
“Micro Frontends”- You Keep Using That Word, I Don’t Think It Means What You ...
 
Iterating on your idea
Iterating on your ideaIterating on your idea
Iterating on your idea
 
The Redux State of the Art
The Redux State of the ArtThe Redux State of the Art
The Redux State of the Art
 
Startup hackers toolbox
Startup hackers toolboxStartup hackers toolbox
Startup hackers toolbox
 
Fuck you startup world
Fuck you startup worldFuck you startup world
Fuck you startup world
 
The Future of Work
The Future of WorkThe Future of Work
The Future of Work
 
Good rules for bad apps
Good rules for bad appsGood rules for bad apps
Good rules for bad apps
 
Andriod dev toolbox part 2
Andriod dev toolbox  part 2Andriod dev toolbox  part 2
Andriod dev toolbox part 2
 
Know what (not) to build
Know what (not) to buildKnow what (not) to build
Know what (not) to build
 
Android ui tips & tricks
Android ui tips & tricksAndroid ui tips & tricks
Android ui tips & tricks
 

Recently uploaded

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...stazi3110
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptkotipi9215
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsAhmed Mohamed
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideChristina Lin
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfPower Karaoke
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesPhilip Schwarz
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityNeo4j
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样umasea
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmSujith Sukumaran
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...OnePlan Solutions
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...soniya singh
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaHanief Utama
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxnada99848
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)OPEN KNOWLEDGE GmbH
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software DevelopersVinodh Ram
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWave PLM
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - InfographicHr365.us smith
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEEVICTOR MAESTRE RAMIREZ
 

Recently uploaded (20)

Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
Building a General PDE Solving Framework with Symbolic-Numeric Scientific Mac...
 
chapter--4-software-project-planning.ppt
chapter--4-software-project-planning.pptchapter--4-software-project-planning.ppt
chapter--4-software-project-planning.ppt
 
Unveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML DiagramsUnveiling Design Patterns: A Visual Guide with UML Diagrams
Unveiling Design Patterns: A Visual Guide with UML Diagrams
 
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop SlideBuilding Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
Building Real-Time Data Pipelines: Stream & Batch Processing workshop Slide
 
The Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdfThe Evolution of Karaoke From Analog to App.pdf
The Evolution of Karaoke From Analog to App.pdf
 
Folding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a seriesFolding Cheat Sheet #4 - fourth in a series
Folding Cheat Sheet #4 - fourth in a series
 
EY_Graph Database Powered Sustainability
EY_Graph Database Powered SustainabilityEY_Graph Database Powered Sustainability
EY_Graph Database Powered Sustainability
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
办理学位证(UQ文凭证书)昆士兰大学毕业证成绩单原版一模一样
 
Intelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalmIntelligent Home Wi-Fi Solutions | ThinkPalm
Intelligent Home Wi-Fi Solutions | ThinkPalm
 
Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...Advancing Engineering with AI through the Next Generation of Strategic Projec...
Advancing Engineering with AI through the Next Generation of Strategic Projec...
 
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
Russian Call Girls in Karol Bagh Aasnvi ➡️ 8264348440 💋📞 Independent Escort S...
 
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort ServiceHot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
Hot Sexy call girls in Patel Nagar🔝 9953056974 🔝 escort Service
 
React Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief UtamaReact Server Component in Next.js by Hanief Utama
React Server Component in Next.js by Hanief Utama
 
software engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptxsoftware engineering Chapter 5 System modeling.pptx
software engineering Chapter 5 System modeling.pptx
 
Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)Der Spagat zwischen BIAS und FAIRNESS (2024)
Der Spagat zwischen BIAS und FAIRNESS (2024)
 
Professional Resume Template for Software Developers
Professional Resume Template for Software DevelopersProfessional Resume Template for Software Developers
Professional Resume Template for Software Developers
 
What is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need ItWhat is Fashion PLM and Why Do You Need It
What is Fashion PLM and Why Do You Need It
 
Asset Management Software - Infographic
Asset Management Software - InfographicAsset Management Software - Infographic
Asset Management Software - Infographic
 
Cloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEECloud Data Center Network Construction - IEEE
Cloud Data Center Network Construction - IEEE
 

Android Developer Toolbox 2017