Way功能能否下载在iphone6怎么下载软件上?

Zombie Highway v1.10.5 - 僵尸高速公路
我们的目标是要生存下去&&面对全副武装的乘客和窗外的僵尸,看看你能坚持多久?用重力控制方向,躲避僵尸的疯狂攻击或撞击僵尸、点击控制射击。
Key features:
- Crisp 3D graphics - **runs at full 960x640 Retina display on iPhone 4!**
- Immersive CD Quality Audio
- Highly Addicting, Highly polished gameplay
- High Scores: Compete globally or against your friends Game Center!
Seamless Game Center integration for easy, addictive competition
- 16 Guns (and growing)
- 8 Levels in 3 Environments!
- 8 Different kinds of jumping zombies!
- Leaderboards for most kills and total miles
版本 1.10.5 中的新功能
- minor improvements & bug fixes
&若下载得到的文件为 .zip 压缩文件,请手动修改扩展名为 .ipa 即可。
请使用 iTunes、 等工具安装本站软件,建议使用
下载、安装、管理您机器上的 ipa
本站软件大都转载自 apptrackr,威锋等网站,仅为方便网友,如侵犯到您的合法利益,请联系我们。
本站从网上收集的一些商业软件仅供学习、试用,请于下载后 24 小时内删除,并自行购买。
试用本站下载软件需要先越狱,然后安装 AppSync,否则无法安装使用。【】
我猜你还喜欢  后续更新:
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
人气:174522
人气:36789
人气:23034
人气:234879
人气:229771
人气:216426
人气:174522
人气:168895
人气:160978
人气:134214
人气:127698
人气:124114K米iPhone版_K米iPhone版 2.3.0 官方最新版_快播播放器下载_播放器下载
网站地图 | 加入收藏
近期更新的播放器软件
本类播放器软件总排名
站长强烈推荐的播放器
当前位置 :
> K米iPhone版 2.3.0 官方最新版
K米iPhone版 2.3.0 官方最新版
K米iPhone版 2.3.0 官方最新版 >> 播放器软件介绍
K米iPhone版这是一款KTV点歌神器,网友们去唱K的时候可以直接用K米点歌哦!不仅仅方便好用而且功能强大还能够提前团购订包厢,K米iPhone版目前支持好乐迪、宝乐迪、agogo、欢乐迪、Newway等全国上千家连锁KTV,去唱歌就要用K米。
【千家KTV】独家支持全国数千家KTV,好乐迪、宝乐迪、agogo、欢乐迪、Newway等等全都有。
【K歌装逼】无线点歌、音准评分、录音下载,用手机点歌做麦霸潮人。
【包厢乱斗】装逼遥控、动画表情、吐槽献花、敲锣打鼓全归你管!
【K歌社交】本地KTV美女,尽在K米达人榜,还不来听同城美女唱歌?
【团购预订】同步支持全国千家KTV团购,直接预订包厢功能将在各大城市陆续开放,K歌不排队!
◆找歌最快。
-超级搜索框自动联想推荐热门歌曲。
-找回上次点的歌曲,还能快速收藏。
-精选集,点了又点,根本停不下来。
◆遥控最牛
-秒速切歌,我切,我切切切。
-一键重唱,精彩重来。
-伴奏、麦克风音量由你掌控。
◆插歌最狠
-瞬间顶歌,你懂的...。
-随意插歌想怎么唱就怎么唱。
-评分歌曲录音随意保存。
◆包厢最嗨
-手机一点给小伙伴最有爱的喝彩。
-搞笑文字,来一句逗乐大家。
一图抵千言,精彩时刻即时分享。
感谢您认真阅读完本简介:提供:K米iPhone版 2.3.0 官方最新版,版权归开发者所有,本站所有内容来源于互联网,如有侵权,请来信告知。希望网友们不要破坏互联网平衡、支持正版、合法使用。本站软件都经过杀毒,为了安全和保护账号的角度,还是请大家下载后在进行一次检测。最后,播放器之家祝:广大网友使用软件愉快。
下载地址:下载帮助(找不到下载地址?)
猜您还可能要找以下版本软件
上一篇: 下一篇:
收藏起来:
1、播放器之家所提供的影音播放器软件绝大部分是免费和绿色免安装版本。我们都亲自运行测试后才上传,尽力保证没有木马和病毒,但限于能力及系统等因素,无法保证所有软件都没有任何问题,如果您发现链接错误或其它问题,请在线留言反馈给我们,谢谢! QQ:
2、脚本之家旗下-播放器之家尊重知识产权。 本站不提供破解文件及注册码,若无意中侵犯到您的权益,敬请联系我们。我们会在收到信息后及时给予配合处理; 所有资源均可正常下载,为了获得最快的下载速度,我们推荐您使用 迅雷 下载本站提供的软件。
3、为确保正常使用请使用 WinRAR3.5版本以上 解压本站播放器软件。
4、本站为非营利性站点,所有资源均是网上搜集或私下交流学习之用,任何涉及商业盈利目的均不得使用,否则产生的一切后果将由您自己承担!本站仅仅提供一个观摩学习的环境,不对任何资源负法律责任。所有资源请在下载后24小时内删除。如果您觉得满意,请购买正版,唯有如此才能更好支持你所喜欢的软件更好发展!本站严厉谴责和鄙夷一切利用本站资源进行牟利的行为!Copyright @ 麥威有限公司 版權所有並保留一切權力。 服務專線:The devil's in the details
Archive for the 'iphone' category
八 05 2011
Published by
在 的 , 和 编程框架中, 属性列表(Property List)文件是一种用来存储串行化后的对象的文件。属性列表文件的扩展名为.plist ,因此通常被称为 plist文件。
Plist文件通常用于储存用户设置,也可以用于存储捆绑的信息,该功能在旧式的Mac OS中是由资源分支提供的。
使用mac os 和Core Foundation中的property list接口我们可以在层式的对象和xml文件之间进行转换。我们可以把xml文件存储起来以后再把它以对象的形式读取出来。这里我们来具体讨论下 property list和他们的表现形式,以及如何在编程过程中使用他们。
这里我想提到一下NSUserDefault,它其实也是以property list 的形式来存储的,但是它有限制,比如说NSColor和NSFont等类型式不能够直接存储的,我们必须要转换他们,要把他们转换成NSData类型来存 储,我想在另一篇文章在详细说说这个问题。
废话不多说,我们开始吧。
在编程的过程中,我们可以在项目中建立plist来存储一些变量,具体的操作步骤File-new-Mac OS X-Resource-Property List。我们在项目中可以以xml形式或者source Code形式来编写。比如我们的plist原代码的形式象下面的xml一样。
&?xml version="1.0" encoding="UTF-8"?&
&!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "/DTDs/PropertyList-1.0.dtd"&
&plist version="1.0"&
&key&Name&/key&
&string&John Doe&/string&
&key&Phones&/key&
&string&408-974-0000&/string&
&string&503-333-5555&/string&
接下来我们从plist中读取信息,这是在iPhone开发中的应用:
//get the plist file from bundle
NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];
// build the array from the plist
NSMutableArray *anArray = [[NSMutableArray alloc]initWithContentOfFile:plistPath];
下面是写操作
NSString *error;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
NSUserDomainMask, YES) objectAtIndex:0];
NSString *plistPath = [rootPath stringByAppendingPathComponent:@&Data.plist&];
NSDictionary *plistDict = [NSDictionary dictionaryWithObjects:
[NSArray arrayWithObjects: personName, phoneNumbers, nil]
forKeys:[NSArray arrayWithObjects: @&Name&, @&Phones&, nil]];
NSData *plistData = [NSPropertyListSerialization dataFromPropertyList:plistDict
format:NSPropertyListXMLFormat_v1_0
errorDescription:&error];
if(plistData) {
[plistData writeToFile:plistPath atomically:YES];
else {
NSLog(error);
[error release];
主要的内容来自于:/library/mac/#documentation/cocoa/conceptual/PropertyLists/QuickStartPlist/QuickStartPlist.html#//apple_ref/doc/uid/i-CH4-SW5
八 01 2011
Published by
// ListAddSearchAppDelegate.m
// ListAddSearch
// Created by Ray Hwang on 2/4/10.
// Copyright Original Function LLC 2010. All rights reserved.
#import "ListAddSearchAppDelegate.h"
#define RANDOM_WORD @"Adult|Aeroplane|Air|Aircraft Carrier|Airforce|Airport|Album|Alphabet|Apple|Arm|Army|Baby|Baby|Backpack|Balloon|Banana|Bank|Barbecue|Bathroom|Bathtub|Bed|Bed|Bee|Bible|Bible|Bird|Bomb|Book|Boss|Bottle|Bowl|Box|Boy|Brain|Bridge|Butterfly|Button|Cappuccino|Car|Car-race|Carpet|Carrot|Cave|Chair|Chess Board|Chief|Child|Chisel|Chocolates|Church|Church|Circle|Circus|Circus|Clock|Clown|Coffee|Coffee-shop|Comet|Compact Disc|Compass|Computer|Crystal|Cup|Cycle|Data Base|Desk|Diamond|Dress|Drill|Drink|Drum|Dung|Ears|Earth|Egg|Electricity|Elephant|Eraser|Explosive|Eyes|Family|Fan|Feather|Festival|Film|Finger|Fire|Floodlight|Flower|Foot|Fork|Freeway|Fruit|Fungus|Game|Garden|Gas|Gate|Gemstone|Girl|Gloves|God|Grapes|Guitar|Hammer|Hat|Hieroglyph|Highway|Horoscope|Horse|Hose|Ice|Ice-cream|Insect|Jet fighter|Junk|Kaleidoscope|Kitchen|Knife|Leather jacket|Leg|Library|Liquid|Magnet|Man|Map|Maze|Meat|Meteor|Microscope|Milk|Milkshake|Mist|Money $$$$|Monster|Mosquito|Mouth|Nail|Navy|Necklace|Needle|Onion|PaintBrush|Pants|Parachute|Passport|Pebble|Pendulum|Pepper|Perfume|Pillow|Plane|Planet|Pocket|Post-office|Potato|Printer|Prison|Pyramid|Radar|Rainbow|Record|Restaurant|Rifle|Ring|Robot|Rock|Rocket|Roof|Room|Rope|Saddle|Salt|Sandpaper|Sandwich|Satellite|School|Sex|Ship|Shoes|Shop|Shower|Signature|Skeleton|Slave|Snail|Software|Solid|Space Shuttle|Spectrum|Sphere|Spice|Spiral|Spoon|Sports-car|Spot Light|Square|Staircase|Star|Stomach|Sun|Sunglasses|Surveyor|Swimming Pool|Sword|Table|Tapestry|Teeth|Telescope|Television|Tennis racquet|Thermometer|Tiger|Toilet|Tongue|Torch|Torpedo|Train|Treadmill|Triangle|Tunnel|Typewriter|Umbrella|Vacuum|Vampire|Videotape|Vulture|Water|Weapon|Web|Wheelchair|Window|Woman|Worm|X-ray"
@interface RootViewController : UITableViewController &NSFetchedResultsControllerDelegate, UISearchDisplayDelegate, UISearchBarDelegate& {
NSManagedObjectContext *managedObjectC
NSFetchedResultsController *fetchedResultsC
*filteredListC
*savedSearchT
savedScopeButtonI
@property (nonatomic, retain) NSArray *filteredListC
@property (nonatomic, copy) NSString *savedSearchT
@property (nonatomic) NSInteger savedScopeButtonI
@property (nonatomic) BOOL searchIsA
@property (nonatomic, retain) NSManagedObjectContext *managedObjectC
@property (nonatomic, retain) NSFetchedResultsController *fetchedResultsC
@implementation RootViewController
@synthesize managedObjectC
@synthesize fetchedResultsC
@synthesize filteredListC
@synthesize savedSearchT
@synthesize savedScopeButtonI
@synthesize searchIsA
- (void)viewDidLoad {
[super viewDidLoad];
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd
target:self action:@selector(addWord)] autorelease];
UISearchBar *searchBar = [[UISearchBar alloc] initWithFrame:CGRectMake(0, 0, self.tableView.frame.size.width, 0)];
searchBar.delegate =
searchBar.showsCancelButton = YES;
searchBar.scopeButtonTitles = [NSArray arrayWithObjects:@"Case Sensitive", @"Case Insensitive", nil];
[searchBar sizeToFit];
self.tableView.tableHeaderView = searchB
[searchBar release];
UISearchDisplayController *searchDisplayController = [[UISearchDisplayController alloc] initWithSearchBar:searchBar contentsController:self];
[self performSelector:@selector(setSearchDisplayController:) withObject:searchDisplayController];
[searchDisplayController setDelegate:self];
[searchDisplayController setSearchResultsDataSource:self];
[searchDisplayController setSearchResultsDelegate:self];
[searchDisplayController release];
if (![[self fetchedResultsController] performFetch:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
self.filteredListContent = [NSMutableArray arrayWithCapacity:[[[self fetchedResultsController] fetchedObjects] count]];
if (self.savedSearchTerm)
[self.searchDisplayController setActive:self.searchIsActive];
[self.searchDisplayController.searchBar setSelectedScopeButtonIndex:self.savedScopeButtonIndex];
[self.searchDisplayController.searchBar setText:savedSearchTerm];
self.savedSearchTerm = nil;
- (void)viewWillAppear {
[self.tableView reloadData];
- (void)viewDidUnload {
self.searchIsActive = [self.searchDisplayController isActive];
self.savedSearchTerm = [self.searchDisplayController.searchBar text];
self.savedScopeButtonIndex = [self.searchDisplayController.searchBar selectedScopeButtonIndex];
self.filteredListContent = nil;
self.fetchedResultsController = nil;
- (void)addWord {
NSManagedObject *newWord = [NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:[self managedObjectContext]];
[newWord setValue:[NSString stringWithFormat:@"New Word %d", random() % 100] forKey:@"Value"];
[[self managedObjectContext] save:nil];
- (void)configureCell:(UITableViewCell *)cell atIndexPath:(NSIndexPath *)indexPath {
NSManagedObject *entity = nil;
if (self.searchIsActive)
entity = [[self filteredListContent] objectAtIndex:[indexPath row]];
entity = [fetchedResultsController objectAtIndexPath:indexPath];
cell.textLabel.text = [entity valueForKey:@"Value"];
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
if (self.searchIsActive) {
return [self.filteredListContent count];
NSInteger numberOfRows = 0;
if ([[fetchedResultsController sections] count] & 0) {
id &NSFetchedResultsSectionInfo& sectionInfo = [[fetchedResultsController sections] objectAtIndex:section];
numberOfRows = [sectionInfo numberOfObjects];
return numberOfR
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier] autorelease];
cell.accessoryType = UITableViewCellAccessoryDisclosureI
cell.selectionStyle = UITableViewCellSelectionStyleN
[self configureCell:cell atIndexPath:indexPath];
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
[tableView deselectRowAtIndexPath:indexPath animated:YES];
NSManagedObject *entity = nil;
if (self.searchIsActive)
entity = [[self filteredListContent] objectAtIndex:[indexPath row]];
entity = [fetchedResultsController objectAtIndexPath:indexPath];
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Selected" message:[entity valueForKey:@"Value"] delegate:self cancelButtonTitle:@"Close" otherButtonTitles:nil];
[alert show];
[alert release];
#pragma mark -
#pragma mark Content Filtering
- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
if ([scope isEqualToString:@"Case Sensitive"]) {
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"Value BEGINSWITH %@", searchText];
self.filteredListContent = [[[self fetchedResultsController] fetchedObjects] filteredArrayUsingPredicate:predicate];
NSPredicate * predicate = [NSPredicate predicateWithFormat:@"Value BEGINSWITH[cd] %@", searchText];
self.filteredListContent = [[[self fetchedResultsController] fetchedObjects] filteredArrayUsingPredicate:predicate];
#pragma mark -
#pragma mark UISearchDisplayController Delegate Methods
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
[self filterContentForSearchText:searchString scope:
[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:
[self.searchDisplayController.searchBar selectedScopeButtonIndex]]];
return YES;
- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchScope:(NSInteger)searchOption
[self filterContentForSearchText:[self.searchDisplayController.searchBar text] scope:
[[self.searchDisplayController.searchBar scopeButtonTitles] objectAtIndex:searchOption]];
return YES;
- (void)searchDisplayControllerWillBeginSearch:(UISearchDisplayController *)controller {
self.searchIsActive = YES;
[self performSelector:@selector(addWord) withObject:nil afterDelay:3.0];
- (void)searchDisplayControllerDidEndSearch:(UISearchDisplayController *)controller {
self.searchIsActive = NO;
#pragma mark -
#pragma mark Fetched results controller
- (NSFetchedResultsController *)fetchedResultsController {
if (fetchedResultsController != nil) {
return fetchedResultsC
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Entity" inManagedObjectContext:managedObjectContext];
[fetchRequest setEntity:entity];
NSSortDescriptor *nameDescriptor = [[NSSortDescriptor alloc] initWithKey:@"Value" ascending:YES];
NSArray *sortDescriptors = [[NSArray alloc] initWithObjects:nameDescriptor, nil];
[fetchRequest setSortDescriptors:sortDescriptors];
NSFetchedResultsController *aFetchedResultsController = [[NSFetchedResultsController alloc] initWithFetchRequest:fetchRequest
managedObjectContext:managedObjectContext
sectionNameKeyPath:nil
cacheName:@"Root"];
self.fetchedResultsController = aFetchedResultsC
fetchedResultsController.delegate =
[aFetchedResultsController release];
[fetchRequest release];
[nameDescriptor release];
[sortDescriptors release];
return fetchedResultsC
- (void)controllerDidChangeContent:(NSFetchedResultsController *)controller {
if (self.searchIsActive) {
[self searchDisplayController:[self searchDisplayController] shouldReloadTableForSearchString:[[[self searchDisplayController] searchBar] text]];
[self.searchDisplayController.searchResultsTableView reloadData];
[self.tableView reloadData];
- (void)dealloc {
[fetchedResultsController release];
[managedObjectContext release];
[filteredListContent release];
[super dealloc];
@implementation ListAddSearchAppDelegate
@synthesize
- (void)createRandomData {
if(![[NSUserDefaults standardUserDefaults] boolForKey:@"ran"]) {
NSString *words = RANDOM_WORD;
NSArray *data = [words componentsSeparatedByString:@"|"];
for (int i=0; i&[data count]; i++) {
NSManagedObject *entity = [NSEntityDescription insertNewObjectForEntityForName:@"Entity" inManagedObjectContext:[self managedObjectContext]];
[entity setValue:[data objectAtIndex:i] forKey:@"Value"];
if (i & 0 && i % 15 == 0)
[[self managedObjectContext] save:nil];
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"ran"];
[[NSUserDefaults standardUserDefaults] synchronize];
#pragma mark -
#pragma mark Application lifecycle
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self createRandomData];
RootViewController *rootViewCtrl = [[RootViewController alloc] initWithStyle:UITableViewStylePlain];
rootViewCtrl.managedObjectContext = [self managedObjectContext];
UINavigationController *navViewCtrl = [[UINavigationController alloc] initWithRootViewController:rootViewCtrl];
navViewCtrl.navigationBar.barStyle = UIBarStyleBlackO
[window makeKeyAndVisible];
[window addSubview:[navViewCtrl view]];
[rootViewCtrl release];
return YES;
- (void)applicationWillTerminate:(UIApplication *)application {
NSError *error = nil;
if (managedObjectContext != nil) {
if ([managedObjectContext hasChanges] && ![managedObjectContext save:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
#pragma mark -
#pragma mark Core Data stack
- (NSManagedObjectContext *) managedObjectContext {
if (managedObjectContext != nil) {
return managedObjectC
NSPersistentStoreCoordinator *coordinator = [self persistentStoreCoordinator];
if (coordinator != nil) {
managedObjectContext = [[NSManagedObjectContext alloc] init];
[managedObjectContext setPersistentStoreCoordinator: coordinator];
return managedObjectC
- (NSManagedObjectModel *)managedObjectModel {
if (managedObjectModel != nil) {
return managedObjectM
managedObjectModel = [[NSManagedObjectModel mergedModelFromBundles:nil] retain];
return managedObjectM
- (NSPersistentStoreCoordinator *)persistentStoreCoordinator {
if (persistentStoreCoordinator != nil) {
return persistentStoreC
NSURL *storeUrl = [NSURL fileURLWithPath: [[self applicationDocumentsDirectory] stringByAppendingPathComponent: @"ListAddSearch.sqlite"]];
NSError *error = nil;
persistentStoreCoordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:[self managedObjectModel]];
if (![persistentStoreCoordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:storeUrl options:nil error:&error]) {
NSLog(@"Unresolved error %@, %@", error, [error userInfo]);
return persistentStoreC
#pragma mark -
#pragma mark Application's Documents directory
- (NSString *)applicationDocumentsDirectory {
return [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
#pragma mark -
#pragma mark Memory management
- (void)dealloc {
[managedObjectContext release];
[managedObjectModel release];
[persistentStoreCoordinator release];
[window release];
[super dealloc];
八 01 2011
Published by
iPhone 的出现带出了前所未见的变革,应用开发社群圈内圈外的人均参与其中。但是对那些处于开发世界之外的群体而言,这个过程仍然充满神秘感。这个教程将指导你逐 步把iPhone应用想法变成现实。如果你计划制作自己的首款iPhone应用的话,这篇文章将为你提供可能会用到的各种想法、技术、技巧和资源
1、产生想法——优秀的想法
你要如何知道想法是否优秀呢?第一步,先考虑你的想法是否有内涵;第二部,想法是否含有至少一个的成功要素,包括以下几个方面:
应用能否帮助用户解决某个独特的问题?在电灯泡发明之前,有人大加抱怨在烛光下看书很不方便。你需要知道用户存在何种问题,应用要如何让用户的生活变得更为舒适。
应用是否为某个特定群体提供服务?尽管App Store上没有这方面的相关数据,但是App Store内应用数的增加就预示这应用的使用人数也在增加。找到适合应用的群体,制作一款偏向某个群体的应用。
应用能否让用户开心?这是个很显而易见的问题。如果你的想法有趣,那么肯定是找对了方向,你的想法或许就是个绝妙的想法。
现存的成功应用是否缺乏某个很重要的功能?你能否做得更好?你需要提供的可能不仅仅是个酒类列表,而是能够与顾客交谈的服务员。
应用是否具有很强的互动性?我们必须面对这个问题,成功的游戏和应用都是通过动作来吸引用户。
提示:你的应用想法是否属于上述之一?如果是这样的话,就要开始准备必要的工具了。
2、工具清单
以下是你需要的工具
加入Apple iPhone Developer Program *
拥有iPhone或iPod Touch *
拥有基于Intel的带有Mac OS X操作系统的Mac电脑
准备保密协议 *
如果没有的话,下载和安装最新版本的iPhone SDK
准备一本笔记本 *
提示:准备所有必须用到的工具。
3、了解自己的长处
你 有什么技能?你是个对编程比较反感的设计师?还是个离开电脑便无法工作的开发者?抑或前两者都不是,只是个有着把某个想法推向市场的普通人而已?设计成功 的iPhone应用就像开办一家小公司。你扮演的是调查人员、项目总监、会计、信息建筑师、设计师、开发者、营销人员和广告商等诸多角色。
记住所有优秀企业家都认同的说法——铸就成功的产品需要团队合作。当然,你也可以一人独揽,但你或许会在此过程中浪费大量的时间和精力。别着急,看看下面的列表,然后问自己最适合哪些工作?然后寻找其他有才华的人来补足空缺。其他人员的参与会让产品变得更为精妙!
辨别哪些做法能够在现有iPhone应用中发挥作用的能力
概述应用功能
应用推广和营销
记住让参与者签署保密协议。在合同中告诉参与者:我很看重这个项目,因此不可随意泄露想法。
提示:先选择适合你自己的技能需求。对于那些你无法完成的工作,请雇佣专业人员。
4、市场调查
通 俗地说,市场调查就是看看其他人在做什么同时避免犯同样的错误。从App Store中的优秀和劣质应用处吸取经验教训。先分析其他的应用(游戏邦注:包括同类应用),然后寻找富有创意性的应用开发和设计解决方案。即便你看到的 是大量设计差劲的应用,你也会从中吸取教训,知道哪些是不该有的做法。
提示:回答以下问题:应用将解决什么问题?你见过哪些产品同样可以解决这个问题?成功应用如何向用户提供信息?你要如何在解决问题的基础上制作出独特的应用?应用能够给用户带来何种价值?
5、了解iPhone和iPod Touch的UI
如果你想要制作的是iPhone应用,那么你需要理解iPhone的功能及其界面。
好消息是,你不用去死记百科全书般的Apple User Interface Guidelines中的内容,来了解iPhone应用可以或不可以采用哪些做法。尽量多下载体验应用,然后思考要在产品中添加何种功能。
你需要注意以下几点:
设计精良的应用是如何从一屏切换到另一屏?
其他应用如何组织信息?
它们向用户呈现多少信息?
它们如何利用iPhone的独特功能,如加速计等?
提示:下载体验每个类别排名前十的应用。参考Apple Guidelines来规划UI设计,列举出至少5个你希望融入到应用中的功能。
6、决定用户类别
假设你已经断定应用对用户有价值而且你足以吸引大量对应用忠诚的用户。那么这些忠诚的粉丝究竟是些什么人呢?他们在应用中需要采取何种行动才能实现自己的目标?
如果你的应用是款游戏,或许他们想要的是赢取最高分。对于那些首次接触游戏的玩家,他们的体验与那些资深玩家有何不同呢?
如果这是款实用型的应用,假设用户想要迅速地找到咖啡店,他们需要在应用中采取何种操作来寻找咖啡店呢?他们寻找咖啡店之时身处何处?通常是在车子里面。能否设计需要多次点击和阅读的用户界面吗?或许你不能这么做!你需要考虑到用户真实生活中的情况来设计应用。
提示:列举出使用应用的不同种类的人群。如果你想让你勾勒的画面尽量真实,甚至可以为这些群体命名。
7、草拟想法
询问自己如下问题:
每屏需要呈现哪些信息?
我们要如何将用户从A点导向B点再导向C点?
屏幕上的元素要如何做到比例恰当、大小适中?
将想法细化并写在纸上可以进一步发挥你的创造性,这笔在脑中构思应用更有效!你也可以购买iPhone Stencil Kit来迅速在纸上草拟应用用户界面原型。
提示:应用每屏都需要进行规划和草拟。试验各种导航方案、按键上的文字以及各屏的连接方式。如果你想将你的草稿转变成数字形式,iPlotz是个值得参考的工具。
草拟想法(from smashingmagazine)
如 果你是设计师,需要下载iPhone GUI Photoshop模板或iPhone PSD Vector Kit。在设计开始时,这两个iPhone GUI元素集都可以为你节省大量的时间。如果你在草拟的过程中已经将应用布局具体化,那么绘制屏幕就更像是真正的应用设计。
如果你自己不是设计师,那么就雇佣一个!这就像是雇个电工来从事电气工作一样。你也可以去Home Depot购买工具自行尝试设计,但应该不会有人愿意冒这个风险。如果你遵循了步骤1至3的做法,那么你应该已经有了所有设计师开始工作所需的东西。
在寻找设计师时,尽量寻找那些有过手机应用设计经验的人。他们可能会为你的草稿提供某些有价值的反馈和建议。你可以在Coroflot、Crowdspring和eLance这些地方寻找设计师。在发布职位招聘时应该详述要求,而且要做好看大量简历的准备。
提示:如果你是个设计师,就开始用Photoshop工作。如果你不是个设计师,应该开始招聘设计师完成这项工作。
设计(from smashingmagazine)
虽然这个教程是按步骤来列举做法,但是最好能在准备设计资源的同时就准备好应用程序员。与程序员交谈可以帮助你制定技术上可行且成本在你预算之内的项目。
如果你是个Objective C或Cocoa程序员,那么就打开Xcode开始工作吧。以下这些论坛值得你注册参加:Apple Dev Forum;iPhoneSDK;iPhoneSDKForum;iPhoneDev Forums;iPhoneSB。
如果你不是程序员的话,你就要去雇佣一个!详细阐述你想要制作的应用类型,是游戏、实用应用还是其他类别的应用。不同类型的应用通常所需的编程技能也有所不同。你可以从Odesk、iPhoneFreelancer、eLance以及上述论坛中寻找程序员。
10、将应用提交至Apple Store
接下来,要如何将你的应用提交给Apple Store呢?对任何不熟悉XCode的人来说,编译应用并发布到iTunes Connect这个过程或许较为困难。如果你有个程序员,让他帮你做以下工作:创建证明文件;确定你的应用ID;创建Distribution Provisioning Profile;编译应用;上传至iTunes Connect。
提示:如果你是个程序员的话,应该规划好开发时间表,然后开始工作。如果你不是个程序员,就需要雇佣程序员来替你完成这些工作。
11、推广应用
应用很容易就被埋没在商店之中而不为人所知。别让这种事情发生在你身上。做好营销应用的计划。事实上,最好拟定多项应用营销计划。做好试验各种营销计划的准备,有些想法能够起作用,有些并不能。
维持或提升应用销售量的战略:
采用社交媒体。如果用户在最喜欢的游戏上获得高分,让他们将此发布到Facebook或Twitter上是个不错的想法。思考如何将社交媒体及其功能融入到应用中。至少要在Facebook和Twitter上建立应用相关页面,用此作为与用户交流和获得应用反馈的平台。
发布前的推广。在应用发布前就要先营造气氛。给那些编写过与应用相关的文章的人发邮件,看看他们能否在应用即将发布之时造势。
制定多次发布的计划。不可在首次发布时就提供所有的功能和特色。让用户对应用留有幻想,并且确保应用将来有所更新。然后,阶段性地发布新版本应用,来推动应用在商店中的销量。
提示:针对应用的目标用户,制定20项推广战略。自行制定这些战略,或者雇佣其他人帮你完成这项工作。
12、集中精力,永不放弃
当你开始制作首款应用时会非常兴奋,并梦想着能够把心中大量的新应用想法变成现实,这是极容易发生的事情。可以有梦想,但是不要让新游戏想法影响你首款应用的设计和开发。在开发首款应用时需要集中注意力,一次性设计多个项目会冲淡你将首款应用铸就为成功之作的激情。
提示:从现在开始应用设计和开发,把你的想法变成现实!
六 13 2011
Published by
取码链接:
懒得写日记? 没关系, 我们有了非常给力的iphone版&九宫格日记&, 您可以使用您的iphone随时随地的记录生活中的点点滴滴。清晰的分类, 漂亮的主题, 时尚的你, 赶紧下载吧!
1.以日历+列表模式显示日记
2.密码保护功能
3.日记的备份和恢复功能。可以按照日期备份和恢复日记,并可以通过内置的web服务器将备份文件保存到您的电脑,或者从电脑中上传备份文件到您的iphone手机。
4.可以通过拍照或者图片库的方式向您的日记添加图片,并内置图片浏览器
5.可以从以前的日记复制,稍作修改后保存为新的日记。
6.可以修改日记时间,可以选择每天心情或者天气。
7.自定义主题,不同的主题对应不同的生活方式。例如:工作、周末等。
8.可以自定义日记背景,有多款背景可供选择。同时可以自定义日记字体、标题字体的颜色样式以及字体大小。
9.日记分享功能,可以将日记分享到新浪微博、facebook、twitter,或者使用邮件将日记分享给您的朋友。
版本 2.1 中的新功能
1.修改了分享到新浪微博的功能,改为使用更为安全的oauth认证方式。
2.添加了将日记以图片方式保存到系统相册的功能。
iPhone 屏幕截图
六 09 2011
Published by
iphone版人体生物钟1.0版本发布,取码地址:/promocode/getcode/.0
人们早就发现,一个人有时体力充沛,精神焕发、情绪高潮、才思敏捷、记 忆力强,有时却浑身困乏、情绪消沉、思维迟钝,记忆力下降,这是什么原因呢?人们只知其然,而不知其所以然。直到本世纪初,德国柏林的医生威廉弗里斯和奥 地利维也纳的心理学家赫乐曼斯沃博达,这两位素不相识的科学家,各自通过长期的观察、研究,最早提出了人体生物钟理论。他们用统计学的方法对观察到的大量 事实进行分析后惊奇地发现:人的体力存在着一个从出生之日算起以23天为一周期的”体力盛衰周期”.
人的感情和精神状况则存在着一个从出生之日算起以28天为一周期的”情绪波动周期”,经过二十年后,奥地利的阿尔弗雷德特尔切尔教授发现了人的智力存在着 一个从出生之日算起以33天为一个周期的”智力强弱周期”。他们的发现揭开了人的体力、情绪和智力存在着周期性变化的秘密。后来,人们把这三位科学家发现 的三个生物节奏总结为”人体生物三节律”,因为这三个节律象钟表一样循环往复,又被人们称作”人体生物钟”,
iphone版人体生物钟,可以根据您提供的生日,查看您每天的智力、体力、情绪状态,赶紧下载吧!
iPhone 屏幕截图
六 08 2011
Published by
苹果的2011全球开发者大会(WWDC)第一天的发布会于北京时间6月7日凌晨1时开始,3时结束。会上主要介绍了三大块:苹果电脑的下一代操作 系统Mac OS X Lion,苹果移动设备下一代操作系统iOS5 以及全新推出的云服务iCloud 。下面是关于这三大块整理。
一、关于 Mac OS X Lion:
目前全球范围有 5400 万活跃的 Mac 用户。上季度 PC 市场缩水 1%,而 Mac 却上升 28%。
Mac OS X Lion 是一个非常重要的更新版本,总共有超过 250 个新特性,还有 3000 多个新 API,而且定价创下新低 &#美元,比以往低了100美元。在 7 月份正式提供下载。会上重点介绍了10个主要功能:
o 多点手势:通过双击,双指开合,轻扫等手势来控制图片和程序。
o 全屏应用程序:全屏程序将成为 Lion 的一个基本功能,开发者能很方便地编写出全屏程序。
o Mission Control:通过简单的手势(三指向上划动)鸟瞰所有运行中的应用程序。
o Mac App Store:程序商店集成在 Lion 当中。可以方便地实现“程序内收费”,还有推送更新。
o Launchpad:通过简单的手势将所有程序的图标呈现在屏幕上。
o 现场恢复:重新打开软件当即回到之前中断的地方,全系统支持此功能。
o 自动保存:用户无需手动保存文件,系统会自动保存最新的修改,退出时不会询问要不要保存。
o 版本控制:系统自动保存不同的版本的文件,便于浏览修改记录,它的界面很像时间机器。
o AirDrop:方便地分享电脑上的内容,直接拖动文件到好友头像上即可分享,采用 P2P 技术。
o 邮件程序:全新的邮件程序,版式更加简洁,增加渐进搜索,标签等功能。
二、关于iOS 5:
iOS设备已售出2亿台以上。iOS成为第一大移动操作系统,占据44%的市场份额。 iOS 5 新增约 1500 个 API ,为用户带来超过
200 个新特性,在今年秋天开放下载。支持 3GS、iPhone 4、iPod Touch 3/4、两代
iPad。会上同样重点介绍了10个主要功能:
o 推送通知中心:在任何时候从顶部向下滑动即可调出“通知中心”,跟 Android 类似。锁屏界面也会列出收到的通知。
o Newsstand:类似于报摊,用来展示和浏览精美的杂志。提供了类似于文件夹一样的界面,打开后的材质和 iBooks 差不多。
o Twitter :Twitter 被整合进各种自带程序,用户可以在地图、Safari、Youtube、联系人等程序里将内容通过 Twitter 分享出去。
o Safari Reader:跟桌面浏览器类似的阅读列表,接近 Instapaper。Safari 可以标签浏览、Twitter 分享、通过渐进搜索添加 @用户名、将未读完的内容通过阅读列表保存并自动同步到其它平台的 Safari 上。
o Reminders:一个比较华丽的便签和 ToDo 记事功能。
o 照相机:新增锁屏快捷方式,即便是在锁定屏幕的情况下,也能方便地进入相机。新增 AE/AF 锁定,照片编辑等功能。
o 邮件程序:新版邮件程序支持富文本编辑、加星、在不同收件人栏里拖放地址、文内搜索。还增加了分离式键盘,为了方便 iPad 上用拇指进行输入,现在的软键盘可以拆分成两小块。
o PC Free:再也不需要连接到电脑上激活 iOS 5 。升级支持 OTA ,摆脱电脑。
o Game Center:浏览朋友的游戏情况,查看朋友的朋友。寻找和尝试新游戏。
o iMessage:在 iOS 设备之间发送文字消息,图片,视频,联系人,还支持群聊功能。
三、关于iCloud:
乔布斯介绍:“现在所有这些设备都有通信功能,可以随时与云端联系。同步不再需要我来干预,甚至不需要从口袋里拿出设备,也不需要靠近 Mac 或 PC
。云不仅仅是网上的硬盘。苹果将自己的解决方案称为 iCloud。iCloud 与程序相整合,一切都自动完成,不需要学习。”iCloud
的主要功能如下:
o 自动备份:通过 WiFi 等无线网络,实现每天自动备份。备份的内容包括音乐,照片,视频,应用程序,书籍等。
o 云端文档:在 iWork 等程序上创建的文档,可以自动同步到云端,修改记录也能同步。开发者也能利用 iCloud API 给自己的程序添加云同步功能。
o 云端照片:任何设备的照片都能自动同步到云端。iCloud 上保存最近 30 天的照片,iOS 设备上保存最新的 1000 张照片,而 Mac 和 PC 上保存所有照片。这个功能也支持 Apple TV 。
o 云端 iTunes :购买的音乐可以在任一相同 Apple ID 的设备上多次下载,
o 5 GB 空间:免费空间是 5 GB,可以保存邮件,文档,备份数据等等。iTunes 音乐不占用空间。
o Mobile Me 邮箱免费:me.com 的邮件免费了,支持推送,不含广告。
o One More Thing: 这次只是一个 one small thing ,名为 iTunes Match 的自动扫描曲库服务。
六 08 2011
Published by
九宫格日记免费版和正式版的备份恢复功能是一样的,步骤如下:
1.在iphone端,打开九宫格日记,备份页面,点击创建新备份,会创建一个当前所有日记数据的备份文件(例如 Diray9__18:52:17)。
2.在同一个页面中,打开页面下方的“web服务器”(点击打开),如果您的iphone处于wifi链接状态(3G不可以),下方的栏中会显示一个url地址(例如:http://192.168.1.2).
3.在和您的iphone处于同一个局域网的电脑中,用浏览器(IE/Safari等)打开步骤2中的url。点击其中的文件名,即可将备份文件保存到您的电脑上,请妥善保管此备份文件。
4.您可以开始将您的iphone升级成最新版本。
5.升级完成后,使用itunes同步好您的九宫格日记程序,或者安装一个新的九宫格日记。
6.打开iphone上的九宫格日记,备份页面,点击打开页面下方的“web服务器”,如果您的iphone处于wifi链接状态(3G不可以),下方的栏中会显示一个url地址(例如:http://192.168.1.2).
7 使用电脑上的浏览器打开此url地址,点击“Browse”按钮选择您电脑中的日记备份文件,点击上传按钮就可上传到您的iphone中。
8 在您的iphone九宫格日记备份页面,此时会在列表中出现此备份文件,点击此文件即可将您之前备份的数据恢复。
六 01 2011
Published by
Multi-tasking can be great, but it has added some complexity to
programming on the iPhone.
For many apps there really is no advantage.
For instance, does the “That’s What She Said” button really need to stay
in memory?
It’s some added complexity that programmers don’t need.. some of the
more complex memory intensive apps will just exit anyways, and
programming the app to suspend can be a highly complicated task.
Fortunately there is a simple way to make your iOS 4 apps terminate for real when the user taps the home button.
This is a simple process:
Open your info.plist file
Add The Key UIApplicationExitsOnSuspend or Select Application does not run in background
Set the new key to YES or Fill in the tick box
Now your applicationwillterminate: method will be run when the user taps the home key, and your app will exit for real.
2015年二月
9101112131415
16171819202122
232425262728
- 33,247 views - 25,394 views - 23,945 views - 18,429 views - 16,180 views

我要回帖

更多关于 iphone固件下载 的文章

 

随机推荐