no internet!! let your apps still work
TRANSCRIPT
Nointernet!!Letyourappsstillwork
SANGHARSHBOUDHH
CO-FOUNDER@PAPERTOSTONE
– Photosharingb/wfriends
Whatdoesitmean?Connectivity isnotguaranteed
Wehaveallseenmanyappswhichworksseamlesslywithout internet
Source:http://www.techgainer.com/whatsapp-message-sent-delivered-and-read-status-identification/
Andmanymore…
HelloAndroid!!
Source:http://www.wired.com/2011/12/only-android-compatible/
ExperiencewithAndroid
Feelfreetointerrupt
Basics- OverviewEventdrivenprogramming
Activity
Intent&Intentfilters
Manifestfile
Service
Contentproviders
Broadcastreceivers
Layouts
Event-drivenprogrammingStartajavaprogram◦ main function runs
Android◦ Userclickedonbutton◦ Screenstarting◦ GPSLocationchanged◦ Anotherappissharing image
ActivityProvidesascreen
Hooksfor◦ Hey,screenisstarting whatdoyouwanttodo◦ Hey,screenisstoppingwhatdoyouwanttodo◦ Hey,screenisbecomingvisible/invisiblewhatdoyouwanttodo
Source:http://www.edureka.co/blog/android-tutorials-for-beginners-activity-component/
Intent&IntentFiltersIntent◦ Implicit◦ Shareajoke(text)◦ Openmapslink
◦ https://www.google.co.in/maps/place/Kozhikode,+Kerala
◦ Explicit◦ Openanotherscreen(activity)inmyapp
IntentFilter◦ Capabletoshareimages◦ Capabletoopenlinkstomydomain Source:http://slidenerd.com/2014/10/31/android-intents-explicit-and-implicit-intents/
ManifestfileWaytotellrequirement&capabilitiesofyourapp◦ Activities◦ Services,Receivers◦ Permissions◦ Wanttoknowpreciselocationofuser
◦ Feature◦ Deviceshould havecamera
ServiceLongrunningoperation
Inbackground◦ Noscreen
Operationstillneedstorunindifferentthread
ContentProviderCoveredlaterinpresentation
BroadcastReceiversTrigger◦ Letmeknow,whendeviceisputoncharging◦ Letmeknow,whenSMSisreceived
Performsomelogic◦ Startanactivity◦ Senddatatoserver
Layouts
ThreadsOnemainexecutionthread◦ Should notbeblocked◦ UImanipulation canhappenonlyhere
Longrunningoperations◦ Doneondifferent thread
AndroidEssentialsCrashreporting◦ ACRA,Crashlytics,Crittercism
Analytics◦ GoogleAnalytics,Flurry,Mixpanel
JSON(de-)serialization◦ Gson
HTTPlibrary◦ Retrofit,Volley,Loopj
Pushnotifications◦ GCM◦ Parse,CleverTap,Moengage,Qgraph
Imagehandling◦ Picasso
InstallTracking◦ TUNE, AppsFlyer
DataStorageKey-Valuepairs◦ SharedPreferences◦ “organization”:”Cafit”;“conference”:“Reboot”
◦ Singlevalueitemse.g.userpreferences
Files
Relationaldata◦ Outofthebox:SQLite◦ Multiple rowsofdata◦ Normalizeddataform
ConnectingtoyourserverBasics◦ AsyncTask◦ HttpURLConnection
Libraries◦ Retrofit bySquare◦ Volley◦ Loopj
SyncFrameworkProvides◦ Robustframeworkoutofthebox◦ Automatednetworkchecking◦ Improvedbatteryperformance◦ Scheduling, Retries
Implementation◦ Authenticator◦ ContentProvider◦ SyncAdapter
Resource◦ TransferringDataUsingSyncAdapters◦ Howtodevelopanoffline-firstnativeAndroid app
AuthenticatorRegistersuserinAndroidSystem(Settings>Accounts)
Stubitorimplementit◦ Dependsonlogin requirementofyourserver-side
ExtendsAbstractAccountAuthenticator
Register◦ Metadatafile
Source:◦ AbstractAccountAuthenticator◦ Stub Authenticator
BonusAppsshowsupinSettings>Accounts
ContentProviderWhat◦ Sharingdatawithotherapps◦ Accessingdataofotherapps◦ E.g.Contacts,Calendar
◦ Morestructuredwaytoaccessowndata
Resources◦ ContentProvider◦ Stubprovider◦ Simpleprovider – Greatlibrarytostart
Advancedcases◦ Joining tables◦ Visibilityhandling
SyncAdapterExtendAbstractThreadedSyncAdapter
Boundservice
SyncAdapter- RegisterMetadatafile
AndroidManifest
SyncAdapter–WhentorunWhenserverdatachanges◦ GCM
◦ ContentResolver.requestSync()
Whendevicedatachanges◦ ContentProviderdetectschange
◦ ContentObserver.onChange()
Periodically◦ Atregularintervals◦ Specifictimesofday
◦ ContentResolver.addPeriodicSync()
Ondemand◦ Inresponsetouser’saction
◦ ContentResolver.requestSync()
AdditionalbenefitsLoaders◦ Asynchronous loadingofdata◦ Autorefreshoncontentchange◦ Plugs inwellwithContentProvider andCursors◦ https://developer.android.com/guide/components/loaders.html
Sharingdataacrossapps
Systemchecksconnectivityforyou
ThankyouJWouldlovetochataboutAndroid,Node.js,Angular.js,Elasticsearch,Startupsoranythingafterthetalk
- SangharshBoudhh
www.papertostone.com
https://www.linkedin.com/in/sangharshboudhh