SlideShare a Scribd company logo
1 of 71
Download to read offline
What’s the deal with Android maps? 
11.19.2014 | Chuck Greb | @ecgreb
Mapzen is an open source mapping lab building 
and supporting open data and software to 
promote a healthy mapping ecosystem.
start where you are
Cross-platform frameworks 
Issues 
⇢ Look & feel 
⇢ Performance 
⇢ System level integration 
⇢ Inter-app communication 
Just make a mobile web app!
Android Development 101 
(for mappers)
Android Development 101 
Anatomy of an application 
⇢ AndroidManifest 
⬝ Package name 
⬝ Components 
⬝ Permissions 
⬝ Minimum SDK 
⇢ Activities 
⇢ Fragments 
⇢ Views 
⇢ Resources
Android Development 101 
Development Environment 
Google (2008) Community Google (2014) 
Build System Ant Maven Gradle 
IDE Eclipse IntelliJ IDEA Android Studio 
Testing Android Testing 
Framework 
Robolectric Espresso 
Emulator Android Virtual 
Device (ARM) 
Genymotion Android Virtual 
Device (x86)
Android Development 101 
Gradle 
⇢ Groovy (DSL) 
⇢ Build, test, and publish apps 
⇢ Manage distributed dependencies
Android Development 101 
Android Studio 
⇢ Based on IntelliJ IDEA 
⇢ Rich layout editor 
⇢ Tight integration with Android SDK and Gradle
Open Source Map Tools for Android
Open Source Map Tools 
Rendering 
⇢ osmdroid 
⇢ Mapbox 
⇢ OpenScienceMap
Open Source Map Tools 
Geolocation, search & routing 
⇢ LOST 
⇢ Pelias 
⇢ On the Road
osmdroid 
raster tiles
2008 
osmdroid
Based on Google Maps API v1 
osmdroid
osmdroid 
Support for online and offline tile sources
Icons, tracking, and shapes 
osmdroid
osmdroid 
<org.osmdroid.views.MapView 
android:id="@+id/map_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
tilesource="Mapnik" />
osmdroid 
MapView mapView = new MapView(this, 256); 
this.setContentView(mapView); 
OnlineTileSourceBase mapnikTileSource = new XYTileSource("Mapnik", 
ResourceProxy.string.mapnik, 0, 18, 256, ".png", new String[] { 
"http://a.tile.openstreetmap.org/", 
"http://b.tile.openstreetmap.org/", 
"http://c.tile.openstreetmap.org/" }); 
mapView.setTileSource(mapnikTileSource);
Mapbox 
raster tiles (vector coming soon?)
Fork of osmdroid 
Mapbox
Mapbox 
Easy integration with Mapbox tile server
Mapbox 
<com.mapbox.mapboxsdk.views.MapView 
android:id="@+id/map_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
mapbox:mapid="Your Mapbox mapid" />
Mapbox 
MapView mapView = new MapView(this, "Your Mapbox mapid"); 
this.setContentView(mapView);
OpenScienceMap 
vector tiles
OpenScienceMap 
Universität Bremen
OpenScienceMap 
“OpenScienceMap provides free and open maps for Android 
with the fastest and 100% pure vector maps around.”
OpenScienceMap 
<org.oscim.android.MapView 
android:id="@+id/map_view" 
android:layout_width="match_parent" 
android:layout_height="match_parent" />
OpenScienceMap 
public class MyActivity extends MapActivity { 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
... 
} 
public Map getMap() { 
return super.map(); 
} 
}
OpenScienceMap 
@Override 
public void onCreate(Bundle icicle) { 
super.onCreate(icicle); 
UrlTileSource tileSource = new OSciMap4TileSource("http://vector.example.com/all"); 
VectorTileLayer baseLayer = map().setBaseMap(tileSource); 
map().layers().add(new BuildingLayer(map(), baseLayer)); 
map().layers().add(new PoiLayer(map(), baseLayer)); 
map().layers().add(new LabelLayer(map(), baseLayer)); 
baseLayer.setRenderTheme(ThemeLoader.load( 
AssetAdapter.g.openFileAsStream("styles/map.xml)"))); 
}
Location Open Source Tracker (LOST) 
location services
Drop-in replacement for LocationClient 
(Google Play Services) 
LOST
talks directly to LocationManager 
(AOSP) 
LOST
LOST 
Location Providers 
⇢ GPS 
⇢ Wi-Fi 
⇢ Cell network 
⇢ Passive
Fused Location Provider 
LOST
LOST 
Optimizations 
⇢ Frequency 
⇢ Accuracy 
⇢ Battery life
LOST 
Debugging features 
⇢ Mock locations 
⇢ Replay GPX trace file
LOST 
LocationClient locationClient = new LocationClient(context, 
new LocationClient.ConnectionCallbacks() { 
@Override public void onConnected(Bundle bundle) { 
onLocationClientConnected(); 
} 
@Override public void onDisconnected() { 
onLocationClientDisconnected(); 
} 
});
LOST 
private void onLocationClientConnected() { 
Location lastLocation = locationClient.getLastLocation(); 
if (lastLocation != null) { 
// do stuff 
} 
LocationRequest locationRequest = LocationRequest.create(); 
locationRequest.setInterval(5000); 
locationClient.requestLocationUpdates(locationRequest, 
new LocationListener() { 
@Override public void onLocationChanged(Location location) { 
// do more stuff 
} 
}); 
}
Pelias 
modular open source geocoder
Pelias 
distributed full-text geographic search engine
Pelias
Pelias 
Datasources 
⇢ OSM 
⇢ Geonames 
⇢ Quattroshapes
Pelias Android SDK 
Pelias
Pelias 
Pelias.getPelias().suggest("Empire State", Callback<Result>); 
Pelias.getPelias().search("Empire State Building", "x1,y1,x2,y2", Callback<Result>);
Pelias 
{ "type": "FeatureCollection", 
"features": [{ 
"type": "Feature", 
"geometry": { 
"type": "Point", 
"coordinates": [ -73.98597, 40.74871 ]}, 
"properties": { 
"text": "Empire State Building, New York County, New York", 
"score": 1, 
"type": "geoname", 
"id": "5116597" 
} 
}, ... 
}
On the Road 
routing and navigation
On the Road
On the Road 
Features 
⇢ Navigation 
⇢ Snap to route 
⇢ Calculate distances 
⇢ Reroute
On the Road 
Router.getRouter().setEndpoint("http://osrm.example.com") 
.setDriving() 
.setLocation(new double[]{lat, lng}) 
.setLocation(new double[]{lat, lng}) 
.setCallback(new Callback() { 
@Override 
public void success(Route route) { 
// do stuff 
} 
@Override 
public void failure(int statusCode) { 
// do stuff 
} 
}).fetch();
Open by Mapzen 
OpenScienceMap Pelias 
VTM Android SDK On the Road LOST 
Speakerbox 
Location TTS 
Pelias OSRM Manager Vector Tile 
Service OpenGL ES
start where you are
Exercise #1 
Hello Android!
Exercise #2 
Raster maps with osmdroid
Exercise #3 
Vector maps with OpenScienceMap
thanks 
11.19.2014 | Chuck Greb | @ecgreb 
github.com/mapzen 
github.com/pelias 
github.com/ecgreb

More Related Content

What's hot

RedisConf17 - Distributed Java Map Structures and Services with Redisson
RedisConf17 - Distributed Java Map Structures and Services with RedissonRedisConf17 - Distributed Java Map Structures and Services with Redisson
RedisConf17 - Distributed Java Map Structures and Services with RedissonRedis Labs
 
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...Java data structures powered by Redis. Introduction to Redisson @ Redis Light...
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...Nikita Koksharov
 
Cycle.js - A functional reactive UI framework
Cycle.js - A functional reactive UI frameworkCycle.js - A functional reactive UI framework
Cycle.js - A functional reactive UI frameworkNikos Kalogridis
 
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)GreeceJS
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowViliam Elischer
 
Reactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiReactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiAziz Khambati
 
Scaling containers with keda
Scaling containers  with kedaScaling containers  with keda
Scaling containers with kedaNilesh Gule
 
Data Types and Processing in ES6
Data Types and Processing in ES6Data Types and Processing in ES6
Data Types and Processing in ES6m0bz
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJSFestUA
 
Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016Ben Lesh
 
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptRxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptViliam Elischer
 
Rntb20200805
Rntb20200805Rntb20200805
Rntb20200805t k
 
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark ProcessingBulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark ProcessingSpark Summit
 

What's hot (13)

RedisConf17 - Distributed Java Map Structures and Services with Redisson
RedisConf17 - Distributed Java Map Structures and Services with RedissonRedisConf17 - Distributed Java Map Structures and Services with Redisson
RedisConf17 - Distributed Java Map Structures and Services with Redisson
 
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...Java data structures powered by Redis. Introduction to Redisson @ Redis Light...
Java data structures powered by Redis. Introduction to Redisson @ Redis Light...
 
Cycle.js - A functional reactive UI framework
Cycle.js - A functional reactive UI frameworkCycle.js - A functional reactive UI framework
Cycle.js - A functional reactive UI framework
 
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
Cycle.js - Functional reactive UI framework (Nikos Kalogridis)
 
RxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrowRxJS101 - What you need to know to get started with RxJS tomorrow
RxJS101 - What you need to know to get started with RxJS tomorrow
 
Reactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz KhambatiReactive Programming - ReactFoo 2020 - Aziz Khambati
Reactive Programming - ReactFoo 2020 - Aziz Khambati
 
Scaling containers with keda
Scaling containers  with kedaScaling containers  with keda
Scaling containers with keda
 
Data Types and Processing in ES6
Data Types and Processing in ES6Data Types and Processing in ES6
Data Types and Processing in ES6
 
JS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless BebopJS Fest 2019. Anjana Vakil. Serverless Bebop
JS Fest 2019. Anjana Vakil. Serverless Bebop
 
Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016Async Redux Actions With RxJS - React Rally 2016
Async Redux Actions With RxJS - React Rally 2016
 
RxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScriptRxJS - The Reactive extensions for JavaScript
RxJS - The Reactive extensions for JavaScript
 
Rntb20200805
Rntb20200805Rntb20200805
Rntb20200805
 
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark ProcessingBulletproof Jobs: Patterns For Large-Scale Spark Processing
Bulletproof Jobs: Patterns For Large-Scale Spark Processing
 

Viewers also liked

Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android appsChuck Greb
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API DesignChuck Greb
 
10 step marketing plan billy christopher
10 step marketing plan billy christopher10 step marketing plan billy christopher
10 step marketing plan billy christopherDaniel Downs
 
Reading list to prepare your pitch deck
Reading list to prepare your pitch deckReading list to prepare your pitch deck
Reading list to prepare your pitch deckBerik Dossayev
 
5 Pitch Deck Mistakes That Can Keep You From Getting Funded
5 Pitch Deck Mistakes That Can Keep You From Getting Funded5 Pitch Deck Mistakes That Can Keep You From Getting Funded
5 Pitch Deck Mistakes That Can Keep You From Getting FundedDeck Works
 
Dwolla Startup Pitch Deck
Dwolla Startup Pitch DeckDwolla Startup Pitch Deck
Dwolla Startup Pitch DeckJoseph Hsieh
 
Foursquare's 1st Pitch Deck
Foursquare's 1st Pitch DeckFoursquare's 1st Pitch Deck
Foursquare's 1st Pitch DeckRami Al-Karmi
 
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...J. Skyler Fernandes
 

Viewers also liked (8)

Google Charts for native Android apps
Google Charts for native Android appsGoogle Charts for native Android apps
Google Charts for native Android apps
 
Data to Go: Mobile API Design
Data to Go: Mobile API DesignData to Go: Mobile API Design
Data to Go: Mobile API Design
 
10 step marketing plan billy christopher
10 step marketing plan billy christopher10 step marketing plan billy christopher
10 step marketing plan billy christopher
 
Reading list to prepare your pitch deck
Reading list to prepare your pitch deckReading list to prepare your pitch deck
Reading list to prepare your pitch deck
 
5 Pitch Deck Mistakes That Can Keep You From Getting Funded
5 Pitch Deck Mistakes That Can Keep You From Getting Funded5 Pitch Deck Mistakes That Can Keep You From Getting Funded
5 Pitch Deck Mistakes That Can Keep You From Getting Funded
 
Dwolla Startup Pitch Deck
Dwolla Startup Pitch DeckDwolla Startup Pitch Deck
Dwolla Startup Pitch Deck
 
Foursquare's 1st Pitch Deck
Foursquare's 1st Pitch DeckFoursquare's 1st Pitch Deck
Foursquare's 1st Pitch Deck
 
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...
The Best Startup Investor Pitch Deck & How to Present to Angels & Venture Cap...
 

Similar to What's the deal with Android maps?

Building Location-Aware Apps using Open Source (AnDevCon SF 2014)
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)Building Location-Aware Apps using Open Source (AnDevCon SF 2014)
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)Chuck Greb
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android projectIpsit Dash
 
SharePoint Conference 2018 - APIs, APIs everywhere!
SharePoint Conference 2018 - APIs, APIs everywhere!SharePoint Conference 2018 - APIs, APIs everywhere!
SharePoint Conference 2018 - APIs, APIs everywhere!Sébastien Levert
 
CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on AndroidSven Haiges
 
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!Sébastien Levert
 
APIs, APIs Everywhere!
APIs, APIs Everywhere!APIs, APIs Everywhere!
APIs, APIs Everywhere!BIWUG
 
Quick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerQuick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerNic Raboy
 
Building Location-Aware Apps with Open Source & Open Data
Building Location-Aware Apps with Open Source & Open DataBuilding Location-Aware Apps with Open Source & Open Data
Building Location-Aware Apps with Open Source & Open DataChuck Greb
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Matthew Groves
 
Full Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLFull Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLAll Things Open
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon
 
Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Luc Bors
 
Webinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaWebinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaMongoDB
 
Vertx - Reactive & Distributed
Vertx - Reactive & DistributedVertx - Reactive & Distributed
Vertx - Reactive & DistributedOrkhan Gasimov
 
Painless Persistence in a Disconnected World
Painless Persistence in a Disconnected WorldPainless Persistence in a Disconnected World
Painless Persistence in a Disconnected WorldChristian Melchior
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013Laurent_VB
 
Flask and Angular: An approach to build robust platforms
Flask and Angular:  An approach to build robust platformsFlask and Angular:  An approach to build robust platforms
Flask and Angular: An approach to build robust platformsAyush Sharma
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsInfrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsMykyta Protsenko
 

Similar to What's the deal with Android maps? (20)

Building Location-Aware Apps using Open Source (AnDevCon SF 2014)
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)Building Location-Aware Apps using Open Source (AnDevCon SF 2014)
Building Location-Aware Apps using Open Source (AnDevCon SF 2014)
 
Average- An android project
Average- An android projectAverage- An android project
Average- An android project
 
SharePoint Conference 2018 - APIs, APIs everywhere!
SharePoint Conference 2018 - APIs, APIs everywhere!SharePoint Conference 2018 - APIs, APIs everywhere!
SharePoint Conference 2018 - APIs, APIs everywhere!
 
CouchDB on Android
CouchDB on AndroidCouchDB on Android
CouchDB on Android
 
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
SharePoint Saturday Belgium 2018 - APIs, APIs everywhere!
 
APIs, APIs Everywhere!
APIs, APIs Everywhere!APIs, APIs Everywhere!
APIs, APIs Everywhere!
 
Quick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase ServerQuick and Easy Development with Node.js and Couchbase Server
Quick and Easy Development with Node.js and Couchbase Server
 
Building Location-Aware Apps with Open Source & Open Data
Building Location-Aware Apps with Open Source & Open DataBuilding Location-Aware Apps with Open Source & Open Data
Building Location-Aware Apps with Open Source & Open Data
 
Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017Full stack development with node and NoSQL - All Things Open - October 2017
Full stack development with node and NoSQL - All Things Open - October 2017
 
Full Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQLFull Stack Development with Node.js and NoSQL
Full Stack Development with Node.js and NoSQL
 
DevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOpsDevSecCon London 2018: Open DevSecOps
DevSecCon London 2018: Open DevSecOps
 
mobl
moblmobl
mobl
 
Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)Reaching out from ADF Mobile (ODTUG KScope 2014)
Reaching out from ADF Mobile (ODTUG KScope 2014)
 
Webinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and JavaWebinar: Building Your First App with MongoDB and Java
Webinar: Building Your First App with MongoDB and Java
 
Vertx - Reactive & Distributed
Vertx - Reactive & DistributedVertx - Reactive & Distributed
Vertx - Reactive & Distributed
 
Painless Persistence in a Disconnected World
Painless Persistence in a Disconnected WorldPainless Persistence in a Disconnected World
Painless Persistence in a Disconnected World
 
Developing web-apps like it's 2013
Developing web-apps like it's 2013Developing web-apps like it's 2013
Developing web-apps like it's 2013
 
Flask and Angular: An approach to build robust platforms
Flask and Angular:  An approach to build robust platformsFlask and Angular:  An approach to build robust platforms
Flask and Angular: An approach to build robust platforms
 
Infrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and OpsInfrastructure-as-code: bridging the gap between Devs and Ops
Infrastructure-as-code: bridging the gap between Devs and Ops
 
CARTO ENGINE
CARTO ENGINECARTO ENGINE
CARTO ENGINE
 

More from Chuck Greb

Testable Android Architecture
Testable Android ArchitectureTestable Android Architecture
Testable Android ArchitectureChuck Greb
 
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Chuck Greb
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Chuck Greb
 
AnDevCon 2013 Roundup
AnDevCon 2013 RoundupAnDevCon 2013 Roundup
AnDevCon 2013 RoundupChuck Greb
 
Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Chuck Greb
 
HowAboutWe... Build an Android App
HowAboutWe... Build an Android AppHowAboutWe... Build an Android App
HowAboutWe... Build an Android AppChuck Greb
 

More from Chuck Greb (9)

Testable Android Architecture
Testable Android ArchitectureTestable Android Architecture
Testable Android Architecture
 
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
Building Location-Aware Apps with Open Source & Open Data (SXSW 2015)
 
Bu
BuBu
Bu
 
Notifunk
NotifunkNotifunk
Notifunk
 
Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)Data to Go: Mobile API Design (SXSW)
Data to Go: Mobile API Design (SXSW)
 
AnDevCon 2013 Roundup
AnDevCon 2013 RoundupAnDevCon 2013 Roundup
AnDevCon 2013 Roundup
 
Android TDD
Android TDDAndroid TDD
Android TDD
 
Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)Data To Go: Mobile API Design (Lightning Talk)
Data To Go: Mobile API Design (Lightning Talk)
 
HowAboutWe... Build an Android App
HowAboutWe... Build an Android AppHowAboutWe... Build an Android App
HowAboutWe... Build an Android App
 

Recently uploaded

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Patryk Bandurski
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxnull - The Open Security Community
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024BookNet Canada
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Recently uploaded (20)

Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
Integration and Automation in Practice: CI/CD in Mule Integration and Automat...
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptxMaking_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
Making_way_through_DLL_hollowing_inspite_of_CFG_by_Debjeet Banerjee.pptx
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
The transition to renewables in India.pdf
The transition to renewables in India.pdfThe transition to renewables in India.pdf
The transition to renewables in India.pdf
 
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
New from BookNet Canada for 2024: BNC BiblioShare - Tech Forum 2024
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

What's the deal with Android maps?