⑴ ios app开发一般用什么编程语言
开发手机APP所要使用的编程语言APP开发的语言有很多种,主要为以下四种内:
iOS平台开发容语言为Objective-C,开发者一般使用苹果公司开发的ios sdk 搭建开发环境, iOS SDK是开发iphone和iPad 应用程序过程中必不可少的软件开发包,提供了从创建程序,到编译,调试,运行,测试等一些列开发过程中所需要的工具;
安卓 Android开发语言为java,开发者一般是用谷歌公司开发的android sdk搭建开发环境,使用Java进行安卓应用的开发;
微软Windows phone7开发语言是C#;
⑵ iOS 开发怎么入门
一、
准备工作
1. Mac、iOS设备、开发者账号
这些是做iOS开发必须要有的,而且是一大笔钱,但不要怕花钱,因为这些都是值得的。如果能够学有所成,一两个月的工资基本就回本了。就当是自己交的一笔“培训费”吧。
2. 心态上的准备
如
果你是零基础转行iOS,那么一定要有破釜沉舟的勇气和决心,并做好打持久战的心理准备。如果畏手畏脚、瞻前顾后,我劝你还是想好了再来,免得浪
费时间和金钱。我当初收入很低,是拿了3个月的工资买的Macbook,还天天担心丢了或者弄坏;后来学习到小有所成时毅然选择了裸辞,孤身一人来到陌生
的上海,经过2个月的待业状态才找到工作。这一路走来都承受着巨大的精神压力和物质压力。
二、
学习路线
1. 对编程的基本认识
如果你是完全的零基础,我建议先要对编程有个基本的认识。建议从C语言入手,因为C语言比较简洁易上手,并且和Objective-C很相似。
视频推荐网易云课堂的
“计算机专业体系”课程,很适合入门。
书籍的话,推荐《C
Primer Plus》。
2. Objective-C语言学习
当对C语言有个大致的了解后,就可以开始学习Objective-C了。
推荐书籍:
《Objective-C基础教程》
《Objective-C程序设计》
注:这两本内容都差不多,但《Objective-C基础教程》写的更好、更经典,建议以这本为重点精读。但是这本写的比较笼统,难度稍高,所以如果遇到不懂的地方就看看《Objective-C程序设计》,这一本写的简单、详细一些。
需要掌握并熟练运用的地方:
1) 面向对象编程的基础知识。包括:面向对象与面向过程的区别、为什么要面向对象编程,类、对象、继承、方法、属性、接口等概念的理解与使用。
2) Foundation框架。主要是NSString类、NSArray类、NSDictionary类、NSNumber类、NSRange类的熟练运用。
3) 内存管理MRC、ARC的原理,委托delegate、协议protocol、类别category、块block的理解与使用。
3. iOS SDK/Cocoa Touch学习
有了Objective-C基础,就可以开始边看斯坦福公开课边做APP了(个人觉得没有OC基础直接看这个会很吃力)。视频如下:
斯坦福大学公开课CS193P《iOS7应用开发》(Objective-C语言)
斯坦福大学公开课CS193P《iOS8开发 》(Swift语言)
推荐书籍:《精通iOS开发》
第一个iOS应用:
苹果官方有个做iOS应用的教程——《马上着手开发iOS应用程序(Start
Developing iOS Apps Today)》。强烈建议以这个Demo作为你的第一个iOS应用,因为这个教程能让你对一个iOS应用的搭建有个非常全面、细致的认识。完成了这个Demo后,就可以结合斯坦福公开课学到的东西创建属于你自己的APP了。
需要掌握的地方:
1) MVC设计模式。只有理解了iOS的MVC架构,才能把一个应用解剖成一个个单独的部分,这样你在开始做一个项目的时候才不会茫无头绪。
2)UIKit的各种控件。特别是UITableView和UICollectionView一定要掌握,因为大部分的iOS应用都是由这两种视图搭建,吃透了它们那可玩的花样就很多了,其乐无穷。
3) 导航控制器UINavigationController和选项卡控制器UITabBarController。同上,这两个控制器也是绝大多数iOS应用UI框架的根基,也是多个MVC协同工作的最典型例子。
4) 场景切换的实现——Segue。熟练使用Segue很重要,因为一个应用一般都是各个界面轮流出现的,两个界面之间怎样实现跳转、怎样将一个界面的数据传递到下个界面,这都是实际开发中会遇到的问题。
5) Storyboard和AutoLayout的使用。这两者是一个应用的UI界面设计不可或缺的部分。
6) 其它iOS高级编程。包括:数据存取CoreData/SQLite、多线程GCD、绘图CoreGraphics、动画CoreAnimation、网络编程、手势Gesture、多媒体AVFoundation等等,这些内容都可以实际用到时再深入学习。
7) 第三方库的使用。参考:GitHub 上都有哪些值得关注学习的 iOS 开源项目? - 编程
4. 坚持写代码、查文档、读技术博客
学习编程,一定要勤于动手,看再多的书、再多的视频,如果不动手敲代码都是白搭。哪怕书上和视频上的代码你一行都看不懂,也要亲手把代码敲一遍、把Demo亲自实现一遍,这很重要。编程是手敲会的,不是眼睛看会的。
学习iOS开发的过程中,有遇到不懂是正常的,别害怕不懂,Cocoa的内容细节本来就多,每年的WWDC还会发布一些新技术。所以遇到不懂的知识一定要学会查苹果官方API文档:iOS Dev Center
做APP时,如果一个地方不会实现,或者遇到解决不了的问题,一定要学会使用Google搜索。一般来说,初学iOS遇到的问题,Stack Overflow上都有类似的提问,基本一搜一个准。
此外,CSDN等一些技术博客上的文章也很有参考价值。推荐一些优秀的iOS技术博客——中文 iOS/Mac 开发博客列表:tangqiaoboy/iOSBlogCN · GitHub
三、写在最后的话
如
果你能按照以上所述做出一个APP上架并找到工作,那也基本算是入门了。但这并不是终点,这只是一个新的起点。iOS开发,乃至整个计算机/互联网行业,
后面的路还很漫长。苹果的整个Cocoa框架,可谓是博大精深,里面可以深挖的东西太多了;而且一个程序、一段代码可以进行的优化是没有止境的。作为开发
者,只会一门语言是不够的,网络编程、数据库、算法、设计、交互等等东西都是需要掌握的,而语言只是实现这些的工具,语言其实是最简单的。
此外,如果你和我一样是非科班出身,还需要把计算机基础课程补回来,即:数据结构、算法、操作系统、数据库、计算机网络、编译原理等。因为这些知识是你的“内功”,这些基础直接决定了你在这个领域的天花板所在的位置。
当
然,基础差一点也问题不大,最重要的是你对计算机、互联网的热爱和热情。你需要有很强的自学能力,不断地去学习新知识,才不会被这个日新月异的行业淘汰;
你需要保持一颗好奇心,不断地尝试和接受新事物,不断地创新,守旧的人在这个行业无法生存。在我找工作的过程中,那些知名的大公司都是直接在简历关就将我
刷掉了,而那些给我Offer的公司,无一例外都表示,之所以选择我是因为欣赏的我的热情、看重我的自学能力。
所以,如果你和我一样对iOS开发充满热情,敢于接受挑战,那么就从现在开始努力吧,我在前方的路上等你!
⑶ 开发安卓、苹果软件的字体样式、大小设计标准
一、IOS版本的字体设计规范和常识
iOS客户端开发人员,使用的默认简体中文字体,就是常用的华文Heiti
SC。
iOS
UI设计人员,使用Photoshop,请选中“黑体-简”或Heiti
SC,并设置为“细体”、“浑厚”是与iOS上的实际效果最接近的(Heiti
SC
Thin)。或者是冬青黑简体、黑体等等。英文字体是
Helvetica
Neue
Ultra
Light。
二、安卓android
APP字体设计规范
安卓中文字体: droid sans fallback
安卓英文字体:roboto
安卓手机的默认中文字体都是droid
sans
fallback,是谷歌自己的字体,与微软雅黑很像,小米miui
v5
用的也是这种字体。
⑷ iOS开发中如何实现app作为外设被连接的功能
在iOS应用开发中,蓝牙开发是一个重点, 是iOS开发人员必须掌握的一个知识。今天小编就将为大家分享一篇iOS大牛写的有关蓝牙开发中,使用app发布一个peripheral,给其他的central连接的实现方法。
上面这张图是什么意思呢,相信开发过蓝牙项目的童鞋应该都清楚,central模式用的都是左边的类,而peripheral模式用的是右边的类。
peripheral模式的流程
1. 打开peripheralManager,设置peripheralManager的委托
2. 创建characteristics,characteristics的description 创建service,把characteristics添加到service中,再把service添加到peripheralManager中
3. 开启广播advertising
4. 对central的操作进行响应
- 4.1 读characteristics请求
- 4.2 写characteristics请求
- 4.4 订阅和取消订阅characteristics
准备开发环境
1 、Xcode
2、 开发证书和手机(蓝牙程序需要使用使用真机调试,使用模拟器也可以调试,但是方法很负责,本篇分享不做过多赘述),如果不行可以使用osx程序调试
3、 蓝牙外设
实现步骤
1. 打开peripheralManager,设置peripheralManager的委托。设置当前ViewController实现CBPeripheralManagerDelegate委托
@interface BePeripheralViewController :UIViewController
初始化peripheralManager
/*
和CBCentralManager类似,蓝牙设备打开需要一定时间,打开成功后会进入委托方法
-(void):(CBPeripheralManager *)peripheral;
模拟器永远也不会得状态
*/
peripheralManager = [[CBPeripheralManageralloc]initWithDelegate:self queue:nil];
2. 创建characteristics,characteristics的description ,创建service,把characteristics添加到service中,再把service添加到peripheralManager中
在委托方法 -(void):(CBPeripheralManager *)peripheral中,当peripheral成功打开后,才可以配置service和characteristics。 这里创建的service和chara对象是CBMutableCharacteristic和CBMutableService。他们的区别就像NSArray和NSMutableArray区别类似。 我们先创建characteristics和description,description是characteristics的描述,描述分很多种, 这里不细说了,常用的就是。
//peripheralManager状态改变
-(void):(CBPeripheralManager *)peripheral{
switch (peripheral.state) {
//在这里判断蓝牙设别的状态 当开启了则可调用 setUp方法(自定义)
case :
NSLog(@"powered on");
[info setText:[NSStringstringWithFormat:@"设备名%@已经打开,可以使用center进行连接",LocalNameKey]];
[self setUp];
break;
:
NSLog(@"powered off");
[info setText:@"poweredoff"];
break;
default:
break;
}
}
//配置bluetooch的
-(void)setUp{
//characteristics字段描述
CBUUID*UUID = [CBUUIDUUIDWithString:];
/*
可以通知的Characteristic
properties:
permissions
*/
CBMutableCharacteristic*notiyCharacteristic = [[CBMutableCharacteristic alloc]initWithType:[CBUUIDUUIDWithString:notiyCharacteristicUUID]properties: value:nilpermissions:];
/*
可读写的characteristics
properties:CBCharacteristicPropertyWrite |CBCharacteristicPropertyRead
permissions |
*/
CBMutableCharacteristic*readwriteCharacteristic = [[CBMutableCharacteristic alloc]initWithType:[CBUUIDUUIDWithString:readwriteCharacteristicUUID]properties:CBCharacteristicPropertyWrite | :nil permissions: |];
//设置description
CBMutableDescriptor* = [[CBMutableDescriptoralloc]initWithType: UUID value:@"name"];
[:@[]];
/*
只读的Characteristic
properties:CBCharacteristicPropertyRead
permissions
*/
CBMutableCharacteristic *readCharacteristic= [[CBMutableCharacteristic alloc]initWithType:[CBUUIDUUIDWithString:readCharacteristicUUID] properties::nil permissions:];
//service1初始化并加入两个characteristics
CBMutableService *service1 =[[CBMutableService alloc]initWithType:[CBUUID UUIDWithString:ServiceUUID1]primary:YES];
[service1setCharacteristics:@[notiyCharacteristic,readwriteCharacteristic]];
//service2初始化并加入一个characteristics
CBMutableService *service2 =[[CBMutableService alloc]initWithType:[CBUUID UUIDWithString:ServiceUUID2]primary:YES];
[service2setCharacteristics:@[readCharacteristic]];
//添加后就会调用代理的- (void)peripheralManager:(CBPeripheralManager *)peripheraldidAddService:(CBService *)service error:(NSError *)error
[peripheralManageraddService:service1];
[peripheralManageraddService:service2];
}
3. 开启广播advertising
//perihpheral添加了service
-(void)peripheralManager:(CBPeripheralManager *)peripheraldidAddService:(CBService *)service error:(NSError *)error{
if (error == nil) {
serviceNum++;
}
//因为我们添加了2个服务,所以想两次都添加完成后才去发送广播
if (serviceNum==2) {
//添加服务后可以在此向外界发出通告调用完这个方法后会调用代理的
//(void):(CBPeripheralManager*)peripheral error:(NSError *)error
[peripheralManager startAdvertising:@{
: @[[CBUUIDUUIDWithString:ServiceUUID1],[CBUUID UUIDWithString:ServiceUUID2]],
: LocalNameKey
}
];
}
}
//peripheral开始发送advertising
-(void):(CBPeripheralManager *)peripheralerror:(NSError *)error{
NSLog(@"");
}
4. 对central的操作进行响应
- 4.1 读characteristics请求
- 4.2 写characteristics请求
- 4.3 订阅和取消订阅characteristics
//订阅characteristics
-(void)peripheralManager:(CBPeripheralManager*)peripheral central:(CBCentral *):(CBCharacteristic *)characteristic{
NSLog(@"订阅了 %@的数据",characteristic.UUID);
//每秒执行一次给主设备发送一个当前时间的秒数
timer = [NSTimer scheledTimerWithTimeInterval:1target:self selector:@selector(sendData:) userInfo:characteristic repeats:YES];
}
//取消订阅characteristics
-(void)peripheralManager:(CBPeripheralManager*)peripheral central:(CBCentral *):(CBCharacteristic *)characteristic{
NSLog(@"取消订阅 %@的数据",characteristic.UUID);
//取消回应
[timer invalidate];
}
//发送数据,发送当前时间的秒数
-(BOOL)sendData:(NSTimer*)t {
CBMutableCharacteristic *characteristic =t.userInfo;
NSDateFormatter *dft = [[NSDateFormatteralloc]init];
[dft setDateFormat:@"ss"];
NSLog(@"%@",[dftstringFromDate:[NSDate date]]);
//执行回应Central通知数据
return [peripheralManager updateValue:[[dft stringFromDate:[NSDate date]]dataUsingEncoding:NSUTF8StringEncoding] forCharacteristic:(CBMutableCharacteristic*)characteristic onSubscribedCentrals:nil];
}
//读characteristics请求
-(void)peripheralManager:(CBPeripheralManager *):(CBATTRequest *)request{
NSLog(@"didReceiveReadRequest");
//判断是否有读数据的权限
if (request.characteristic.properties &CBCharacteristicPropertyRead) {
NSData *data =request.characteristic.value;
[request setValue:data];
//对请求作出成功响应
[:request withResult:CBATTErrorSuccess];
}else{
[:request withResult:CBATTErrorWriteNotPermitted];
}
}
//写characteristics请求
-(void)peripheralManager:(CBPeripheralManager *):(NSArray *)requests{
NSLog(@"didReceiveWriteRequests");
CBATTRequest *request = requests[0];
//判断是否有写数据的权限
if (request.characteristic.properties &CBCharacteristicPropertyWrite) {
//需要转换成CBMutableCharacteristic对象才能进行写值
CBMutableCharacteristic *c=(CBMutableCharacteristic *)request.characteristic;
c.value = request.value;
[:request withResult:CBATTErrorSuccess];
}else{
[:request withResult:CBATTErrorWriteNotPermitted];
}
}
以上就是iOS蓝牙开发中,app作为外设被连接的具体实现方法,希望对大家开发这项功能有所帮助吧。
⑸ 苹果App删除账号新规生效,为何推出这一规定
苹果公布的新应用开发规范要求开发者为其应用提供账户删除功能,该功能已经生效。今年5月份的时候,苹果需要向所有开发者推送新的应用开发要求,将“删除账户”功能融入到他们的应用中,并将其放置在“显眼”和“用户友好”的位置。 除了“删除账户”的功能外,苹果还会为开发者提供“临时禁用账户”或“禁用账户”等功能,并允许用户删除自己的账户。等这个规定生效,我担心那些常年以“为新客户切刀”作为吸引流量手段的购物平台,不得不想出一些新花样来做。
⑹ iOS和安卓的设计规范有何不同
是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
iOS是苹果公司的移动操作系统。
iOS是由苹果公司开发的移动操作系统,苹果公司最早于2007年1月9日的Macworld大会上公布这个系统,最初是设计给iPhone使用的,后来陆续套用到iPod touch、iPad以及Apple TV等产品上。
iOS和安卓的ui区别二:UI设计规范不一样。
具体的UI设计规范详解请点击阅读:iOS、Android、WindowsPhone官方设计规范汇总
比如现在通常设计的尺寸对比如下:
iOS: 750*1334 或者 1242*2208
android 720*1280 或者 1080*1920
iOS和安卓的ui区别三:导航方式不一样
iOS的Tab放在页面底部,不能通过滑动来切换,只能点击。也有放在上面的,也不能滑动,但有些Tab本身可以滑动,比如天猫的。还有新闻类的应用。
Android一般放在页面顶端,可以通过滑动页面来切换Tab,当然Tab可以点击切换,Tab多的话,Tab本身也可以滑动。比如豌豆荚,网络贴吧,QQ。总之,Android啥都可以有。
iOS和安卓的UI区别四:单条item的操作
iOS单条item的操作有两种,点击和滑动,点击一般进入一个新的页面,滑动会出现对这条item的一些常用操作,如微信里滑动一条对话,会出现标记未读和删除。
Android中,单条item的操作也有两种,点击和长按,点击一般进入一个新的页面。长按进入一个编辑模式,可以在里面进行批量和其他一个操作,比如删除,顶置等等。比如小米的短信页面;长按也可以弹出情境操作栏dialog,进行操作,比如Android版的微信。
OS和安卓的UI区别五:实体键
iOS只有一个实体键(音量,电源不算哈),home键,这个键有这么几个功能:
1、按一次,回到桌面。
2 、双击,出现多任务界面
3、iOS8里面,轻触两下Home键,调出单手模式
4 、指纹解锁
Android有四个实体键(现在很多被屏幕上的虚拟键代替,但功效是一样的)4.4一下的分别是back键,home键,menu键,和搜索键。4.4及以上,是back键,home键,多任务键。安卓原生是这样,经过优化的Android就不一定了,比如魅族的smart bar,根据当前页面情景变化,不过蛮好用。
Android的back键,在大部分情况下,和页面上的返回功效一样。不过,Android的back键可以在应用件切换,还可以返回主屏幕。这个iOS里面的键不能在应用间直接切换。
iOS和安卓的UI区别六:浮窗设计元素不一样
安卓里可以看到各种浮窗,流量,清理内存等等。iOS暂时还不支持这样的浮窗。越狱的貌似可以。
iOS和安卓的UI区别七:图标尺寸和命名规范不一样
1、iOS和安卓手机的APP图标尺寸规范和图标命名规范
2、对比PC、iOS、Android等终端APP的交互设计的差异化
⑺ 苹果手机怎么清除软件的应用数据删掉软件重新下载数据还在怎么清除
苹果手机清除软件的应用数据操作如下:
1、打开手机,找到设置菜回单,如答下图。
⑻ ios开发怎么实现app的消息推送
ios开发实现app的消息推送步骤:⑼ 如何在IOS上发布APP
发布步骤
登陆苹果开发者中心http://developer.apple.com(99美元账号)
进入itunes connect
选择Manage Your Apps
选择Add New App
填写项目相关信息,不知道怎么填的点击问号查看,Bundle ID Suffix需要与上一篇申请发布证书中锁填的后缀一致,否则在上传项目时会出错,需要重新打包
然后是选择项目价格和日期
接下来的页面要填写项目的完整信息
URL可以填写自己的主页,公司的主页等,会被展示在itunes中的,这个URL千万不可填写微博主页等需要登陆后才能查看的链接,有网友因为填写微博链接被拒,实在不行,填写博客地址也可的
④ 联系人信息可以填写自己,也可以填写公司的,demo Account 如果App中需要登陆,可以提供一个测试账号方便苹果审核时调试
⑤上传的图片都是在ituns中展示所用的。3.5-Inch的图片尺寸是960*640或者640*960,或960*600,或
620*900,这几种尺寸都可以。4-Inch的图片尺寸是1136×640, 1136×600, 640×1136 或者
640×1096, 截图最好是真机调试时按住电源键和home键截,这样尺寸肯定不会错的。
点击继续之后会出现,项目是等待上传状态,可以选择edit编辑项目的相关信息
接下来打包应用程序(前提,已经申请过发布证书并安装,未申请的请参照本文开头的链接进行操作)
a.打开Xcode,选择Proct->Archive
b.然后选择distribute…
c.选择第二个
d.选择发布证书
点击next之后便会生成.ipa文件
3.上传.ipa文件,,需要用mac自带的Application Loader
a.在finder中选择应用程序(Applications)->右键选择Xcode->显示包内容->contents->Applications->Application Loader
b.打开Application Loader会出现登录界面,同样用登录开发者中心的账号登录,第一次登录会出现一个接受协议页面,打√后继续就行了
c.进入后选择Deliver Your App,会出现你在developer中心填写的项目,是等待上传状态,选择上传ipa就可以了。
4.上传成功后再回到开发者中心,刷新页面就会发现项目是等待审核状态了,正常审核周期是5个工作日
此时邮箱会收到苹果的邮件,审核结果出来后也会收到邮件