iphone AppStore 2008.11 ( )
( ) : / : / : / iphone Application Android Platform Open Solutions based on Linux
iphone Application Application Process
iphone Jailbreak iphone Version NemusSync, SDK Limitation AppStore ihappydays, App,, SeoulMetro
NemusSync Google Calendar Sync Program World wide popular app supporting 16 languages Over 100,000+ Downloads (iphone OS 1.1.4) SDK AppStore Cydia
SDK Limitations Published API ( Dialer, Wallpaper,...etc) H/W (Camera, I/O) VoIP on 3G Navigation SW Virtual Machine Interpreter (Porn., Malware,...etc)
Palm
App
데이터 관리 itunes Mac iphone
Main Info Sort Refresh Add Select Search Info View Data Source Contact API TableView
App?
Contact ABPersonViewController ABNewPersonViewController ABPeoplePickerNavigationController ABUnknownPersonViewController
Contact Sample Source 1 ABPeoplePickerNavigationController *picker = [[ABPeoplePickerNavigationController alloc] init]; picker.peoplepickerdelegate = self; [navigationcontroller presentmodalviewcontroller:picker animated:yes]; [picker release];
Contact Sample Source 2 ABAddressBookRef addressbook; addressbook = ABAddressBookCreate(); CFArrayRef people; people = ABAddressBookCopyArrayOfAllPeople(addressBook); ABRecordRef abrecord = CFArrayGetValueAtIndex(people, current); NSDate* birthday = (NSDate*)ABRecordCopyValue(abRecord, kabpersonbirthdayproperty); kabpersonfirstnameproperty kabpersonlastnameproperty kabpersonmiddlenameproperty kabpersonnicknameproperty kabpersonemailproperty kabpersonbirthdayproperty First name Last name Middle Name Nick Name E-mail Address Birth Day
Safari Safari NSURL *url = [NSURL URLWithString:@"http://nemustech.com/iphoneihappydays/"]; [[UIApplication sharedapplication] openurl:url]; Mail NSURL *url = [NSURL URLWithString:@"mailto:ipvoc@nemustech.com? subject=ihappydays] "]; [[UIApplication sharedapplication] openurl:url];
Photo iphoto Library
Photo 1200 x 1600 (Original Image) Camera Preview,, Image Library
Photo Data Source UIImagePickerController* imagepicker = [[UIImagePickerController alloc] init]; if (![UIImagePickerController issourcetypeavailable: UIImagePickerControllerSourceTypeCamera]) { imagepicker.sourcetype = UIImagePickerControllerSourceTypeSavedPhotosAlbum; } else { imagepicker.sourcetype = UIImagePickerControllerSourceTypeCamera; } imagepicker.delegate = self; [self presentmodalviewcontroller:imagepicker animated:yes];
Localization,,,,
,, 18 71
Simple Localization UIActionSheet *sortalert = [[UIActionSheet alloc] initwithtitle: NSLocalizedString(@"SortActionTitle", @"") delegate:self cancelbuttontitle: NSLocalizedString(@"Cancel", @"") destructivebuttontitle:nil otherbuttontitles: NSLocalizedString(@"ByName", @"By Name"), NSLocalizedString(@"ByAge", @"By Age"), NSLocalizedString(@"ByDaysToLeft", @"By Days To Left"), nil, nil]; NSLocalizedString (@"ByName", @"By Name") "ByName" = " "; Localizable.string
genstrings genstrings Localizable.string A.strings C, Objective C, Java (*.c, *.m, *.java)
Simple Localization Resources/ en.lproj/ MyApp.nib bird.tiff Bye.txt house.jpg InfoPlist.strings Localizable.strings CitySounds/ city1.aiff city2.aiff Japanese.lproj/ MyApp.nib bird.tiff Bye.txt house.jpg InfoPlist.strings Localizable.strings CitySounds/ city1.aiff city2.aiff : ISO 639-1, ISO 639-2 http://www.loc.gov/standards/iso639-2/php/english_list.php : ISO 3166-1 http://www.iso.ch Language Regional Name en US en_us.lprj
App App
, ID
Setting.bundle Add - New File root.plist
<?xml version="1.0" encoding="utf-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/dtds/ PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>title</key> <string>ihappydays</string> <key>stringstable</key> <string>root</string> <key>preferencespecifiers</key> <array> <dict> <key>type</key> <string>psgroupspecifier</string> <key>title</key> <string>select</string> </dict>
Sort Option NSUserDefaults *defaults = [NSUserDefaults standarduserdefaults]; [self setagesetting:[defaults integerforkey:@"age_setting"]]; [[NSUserDefaults standarduserdefaults] setobject:sortoption forkey:@"sortoption"];
App Store App Store Payment - Sideloading - itunes (Client) OTA - Downloading - Sync App Developer (SDK)
AppStore Process iphone SDK - free download Developer - $99 http://developer.apple.com/iphone Program Portal - Team, ID, Key itunes Connect - Banking/Tax info, App upload, financial report http://itunesconnect.apple.com
iphone Dev. Program Standard Program ($99) Individual or Company for AppStore Enrollment Apple Enterprise Program ($299) for In-house Apps
Publishing Application
Program Portal
Team Company Team Agent/Admin/User Agent - Agent Distribution
Developing Applications iphone has CodeSign info Certificates Development/Distribution using Keychain Access Devices - up to 100 App IDs Unique identifier Bundle Seed ID + Suffix ( eg: 8E549T7128. com.nemustech.ihappydays, or R2T24EVAEE.*)
Distribution Provisioning Profiles Distribution - for AppStore Provision Profile Ad-hoc - for Sharing, up to 100 Devices Ad Hoc
itunes Connect
Contracts Contract Type Free Application - Already in Effect Paid Application Create - Banking Information - Tax Information W-8BEN U.S. Taxpayer ID (Form SS-4?) Submit Application publish in Effect
Manage Apps Add New Application Gathering Metadata - Name, Descr., Category, Price, Localization... Application Binary - upload Home Screen Icon - 57x57 png Large Application Icon - for App Storefront 512x512 jpg Primary Screenshot Apple Review 1 QA Uploading Application Guideline High Frequency : Medium Frequency : Minor Enhancement (2~4 weeks) Low Frequency : New Features (monthly basis)
After Release Watch AppStore! Online Offline New/What s Hot/Staff Favorite Top Apps (Paid/Free) - Region Get Money! * 70% ( ) * 90% ( ) - Monthly Basis but... - $250 2 Top 50
Thank You zaharang@nemustech.com