Just-In-Time (JIT) Compilation Ahead-Of-Time (AOT) Compilation Cache builds up over time Boot times are faster Cache is built at first boot Rebooting device takes significantly longer Apps compiled when executed Stores Compiled Apps Consumes much more internal storage space
Objective –C,[message passing] Swift PlayGround for leaning Swift Programming with Objetive-C in windows/ linux http://www.gnustep.org/ https://developer.apple.com/swift
*string = @“hello”; let string = "hello" as NSString let s: NSString = "hello" var string: NSString = "hello" string= "Hello" NSLog(@“This is a string”); println("This is a string"); NSArray *myArray = [NSArray arrayWithObjects:@“string1", @“string2", nil]; var myArray = [“string1", "string2"] var myArray : [String] = [“string1", "string2"]
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; //Recuperamos el ViewController UIViewController *rootViewController = [storyboard instantiateInitialViewController]; // Creamos un UINavigationController, que se encargará de controlar y almacenar los distintos viewControllers de nuestra aplicación. UINavigationController *navigationController = [[UINavigationController alloc]initWithRootViewController:rootViewController]; //Asignamos el navigationController como principal. self.window.rootViewController = navigationController; return YES; } -(IBAction)goToPantalla2:(id)sender { UIStoryboard *storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]; //Obtenemos el controlador con Identifier "Pantalla2" Pantalla2ViewController *pantalla2Controller = [storyBoard instantiateViewControllerWithIdentifier:@"Pantalla2"]; //Lanzamos el controlador en el navigation de forma animada: [self.navigationController pushViewController:pantalla2Controller animated:YES]; }
iOS Self-signed certificate Apps are signed by developers Apple certificate Apps are signed by Apple Java Keytool Generate a distribution provisioning profile Export + Sign APK iOS Provisioning Portal Debug and distribution certificate App ID (unique ID of your app) Set of device unique identifiers Developer certificate
Declare your application requirements in its manifest-like Info.plist. This is used only for ensuring device compatibility. o UIRequiredDeviceCapabilities allows you to list ’hardware-like’ capabilities that your app needs. o AppStore reads this information for filter installer devices.
is a chunk of user interface with its own life cycle. Fragment must exist within an Activity Interaction with fragments is done through FragmentManager Fragment API was introduced in API 11 http://developer.android.com/tools/support-library
screen Behavior of when network is not available Navigation between screens Behavior of app if app is running for longer period of time and checking memory
iOS Emulator Simulator Very slow integrated with SDK Integrated with Xcode Emulates hardware and software Simulates only software Launched apps are equal binaries from the apps compiled for Device CPU Launched apps are different binaries from the apps compiled for Device CPU
management automatically Garbage Collector iOS release, retain, autorelease ARC(Automatic Reference Counting) Developer maintain the count number for each object Destroys object when reference counting become 0 @autoreleasepool With ARC, compiler set this methods where its necessary
Tables and relations Core Data Objects DataModel Content Providers /data/data/<Application-Package> /databases/<database-name> Only acces with root DataModel editor in Xcode for register objects and their relationships
a one time fee of US$25 iOS Developer Program $99 /year Greater capacity for monetization Google play + Publish in other stores like Amazon,Opera AppStore Alpha/beta testing before put in production Upload to store in 30 min Review process 5-7 days Android Developer Console Beta Testing http://ibetatest.com/ http://testflightapp.com/
http://www.google.com/design/spec/material-design/ introduction.html o http://tools.android.com/ o https://android-arsenal.com/ o http://android-developers.blogspot.com.es/ o www.developer.apple.com o https://developer.apple.com/videos/wwdc/ o https://developer.apple.com/library/ios/referencelibrary/Getting Started/RoadMapiOS/