how mobile sdks help you

21
www.bignerdranch.com How Mobile SDKs Help You [email protected] www.bignerdranch.com Wednesday, June 19, 13

Upload: others

Post on 13-May-2022

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: How Mobile SDKs Help You

www.bignerdranch.com

How Mobile SDKs Help [email protected]

www.bignerdranch.com

Wednesday, June 19, 13

Page 2: How Mobile SDKs Help You

www.bignerdranch.com

Hi, I’m BolotBorn in the USSR, Kyrgyzstan

Studied in the USat Georgia Tech

@bolot

Tango and taido

Wednesday, June 19, 13

Page 3: How Mobile SDKs Help You

www.bignerdranch.com

Big Nerd Ranch★ BNR Atlanta: Galactic Headquarters★ BNR Europe★ BNR Training in Silicon Valley

Wednesday, June 19, 13

Page 4: How Mobile SDKs Help You

www.bignerdranch.com

What does SDK do for you?

Wednesday, June 19, 13

Page 5: How Mobile SDKs Help You

www.bignerdranch.com

Source: ifixit.com

Wednesday, June 19, 13

Page 6: How Mobile SDKs Help You

www.bignerdranch.com

ComplexityCPU, GPU

power management

gyroscopes

accelerometers

storage

radios, GPS, cameras

microphones

display, touchscreen, etc...Source: ifixit.com

Wednesday, June 19, 13

Page 7: How Mobile SDKs Help You

www.bignerdranch.com

ComplexityNetwork protocols

Audio/video codecs

Graphics

Device drivers

Process management

Memory management

Security

Power management, etc...

Source: http://developer.android.com/

Wednesday, June 19, 13

Page 8: How Mobile SDKs Help You

www.bignerdranch.com

ComplexityAPIs

App lifecycle management

User interface

User experience

Services

Distribution

Wednesday, June 19, 13

Page 9: How Mobile SDKs Help You

www.bignerdranch.com

Mobile: 1993 vs 2013

http://dashburst.com/humor/technology-in-1993-vs-2013/

Wednesday, June 19, 13

Page 10: How Mobile SDKs Help You

www.bignerdranch.com

ToolsIDE

Editor

Compiler

UI Designer

Test runner

Programming language

Wednesday, June 19, 13

Page 11: How Mobile SDKs Help You

www.bignerdranch.com

ToolsDiagnostics

Debugging

Profiling

Network

Energy

CPU

Wednesday, June 19, 13

Page 12: How Mobile SDKs Help You

www.bignerdranch.com

Frameworks, librariesClass libraries

Location, Maps (Google, Apple, Bing)

Graphics, Open GL ES

Accelerometers

Data, SQLite

Wednesday, June 19, 13

Page 13: How Mobile SDKs Help You

www.bignerdranch.com

Developer resourcesSoftware design patterns

Best practices

Reusable components

Application templates and sample projects

Documentation, education

Human interface guidelines

Wednesday, June 19, 13

Page 14: How Mobile SDKs Help You

www.bignerdranch.com

Design

Source: http://apple.com/

Wednesday, June 19, 13

Page 15: How Mobile SDKs Help You

www.bignerdranch.com

Design

Source: http://developer.android.com/

Wednesday, June 19, 13

Page 16: How Mobile SDKs Help You

www.bignerdranch.com

Example: LocationCell identification

Cell triangulation

SIM, raw GSM

Wifi

GPS

Wednesday, June 19, 13

Page 17: How Mobile SDKs Help You

www.bignerdranch.com

Example: LocationiOS

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil{ self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; if (self) { _locationManager = [[CLLocationManager alloc] init]; [_locationManager setDelegate:self]; [_locationManager setDesiredAccuracy:kCLLocationAccuracyBest]; [_locationManager startUpdatingLocation]; } return self;}

- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray *)locations{ CLLocation *newLocation = [locations lastObject]; NSLog(@"%@", newLocation);}

Wednesday, June 19, 13

Page 18: How Mobile SDKs Help You

www.bignerdranch.com

Example: LocationAndroid

    public void startLocationUpdates() {        LocationManager lm = (LocationManager)mAppContext.getSystemService(Context.LOCATION_SERVICE);        PendingIntent pi = getLocationPendingIntent(true);        lm.requestLocationUpdates(0, 0, new Criteria(), pi);    }

    public void onReceive(Context context, Intent intent) {        Location loc = (Location)intent.getParcelableExtra(LocationManager.KEY_LOCATION_CHANGED);        onLocationReceived(loc);    }        protected void onLocationReceived(Location loc) {        Log.d(TAG, this + " Got location: " + loc.getLatitude() + ", " + loc.getLongitude());    }

Wednesday, June 19, 13

Page 19: How Mobile SDKs Help You

www.bignerdranch.com

Example: LocationWindows

{_geoLocator = new Geolocator();_geoLocator.PositionChanged += new Windows.Foundation.TypedEventHandler<Geolocator, PositionChangedEventArgs>(geolocator_PositionChanged);}

private void geolocator_PositionChanged(Geolocator sender, PositionChangedEventArgs args){ // Need to set map view on UI thread. this.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler( () => { DisplayPosition(this, args); }));}

private void DisplayPosition(object sender, PositionChangedEventArgs args){ Location location = new Location(args.Position.Coordinate.Latitude, args.Position.Coordinate.Longitude);}

Wednesday, June 19, 13

Page 20: How Mobile SDKs Help You

www.bignerdranch.com

Distribution: Stores

Wednesday, June 19, 13

Page 21: How Mobile SDKs Help You

www.bignerdranch.com

How Mobile SDKs Help You

Bolot Kerimbaev [email protected]

19 June 2013

Wednesday, June 19, 13