iOS APP 开发
iOSApp开发的基本流程与规范

iOSApp开发的基本流程与规范随着移动互联网的快速发展,iOS系统越来越成为移动应用开发的主流平台之一。
iOS系统的稳定性和用户口碑成为了nirvana 开发者想要进入移动应用市场必不可少的一个平台。
在iOS应用开发过程中,开发者需要遵循一些基本流程和规范,保障应用的开发进度和质量。
一、 APP设计在APP设计阶段,开发者需要充分了解和了解目标用户和使用场景。
这个步骤的重点是确定应用的功能和流程。
合理设计可以让用户在使用过程中更加便捷和舒适。
二、UI设计UI是APP界面的设计和呈现。
UI界面设计所依据的约束是谷歌,在谷歌平台下要求app的UI设计必须符合一定的标准,包括配色、布局、icon设计、字体选择等等,UI与用户的体验息息相关,切不可因为某些因素心急快速完成。
三、APP开发APP开发的基础是开发者需要学习掌握Objective-C或Swift的语言语法、框架、界面框制造,同时还需熟悉iOS开发的API和规范。
1.编程语言Objective-C和Swift是iOS应用开发的主要编程语言。
iOS 开发者可以使用这两种语言之一开发应用。
Objective-C在iOS开发中被广泛使用,但Swift也逐渐开始在iOS开发中发挥作用。
Swift获得了定期更新,在语言中加入了许多新功能,它的用法也更加高效和灵活。
2.框架与控件iOS系统提供了许多可用于快速构建界面和处理常见任务的框架和控件。
熟悉这些控件和框架是开发一个高效、稳定的应用的基础。
常见的iOS框架包括:UIKit框架:UIKit框架包括许多用于构建iOS应用的类和组件,包括视图、控制器、转换器、动画、文本和图像组件。
Core Data框架:Core Data是一种轻量级的数据管理框架,用于在iOS应用中存储和管理应用数据。
Core Animation框架:Core Animation是用于iOS动画的基本框架。
3.API调用iOS开发者需要熟悉iOS开发的API和框架,可以使用这些库快速完成许多任务。
开发iOS应用程序的入门指南

开发iOS应用程序的入门指南近年来,随着智能手机的普及,移动应用开发成为了一项热门技能。
特别是iOS平台,由于其用户基数庞大,成为了许多开发者的首选。
那么如何入门iOS应用开发呢?本文将为你提供一个详细的步骤指南。
一、学习基础知识1.1 学习编程语言:Objective-C是开发iOS应用的主要编程语言。
你可以通过参加编程课程、自学教材或在线教程来学习。
掌握基本的编程概念,如数据类型、变量、函数等。
1.2 学习iOS开发框架:iOS开发框架包括UIKit、Foundation等。
了解这些框架的功能和使用方法,对于开发应用至关重要。
二、安装开发工具2.1 安装Xcode:Xcode是苹果官方提供的综合开发环境,集成了编辑器、调试器、模拟器等工具。
下载最新版本的Xcode并安装到你的Mac电脑上。
2.2 注册Apple开发者账号:苹果开发者账号可以让你在真机上测试应用程序,并发布到App Store上。
注册账号需要支付一定的费用。
三、创建新项目3.1 打开Xcode,选择“创建新项目”。
3.2 选择应用程序类型:根据你的需求选择合适的应用程序类型,如单视图、导航、表格视图等。
3.3 填写项目信息:输入项目名称、组织名称、组织标识符等信息。
3.4 选择存储位置:选择将项目文件保存在你的电脑上的哪个目录下。
3.5 创建项目:点击“创建”按钮,Xcode将会为你创建一个新的iOS应用程序项目。
四、设计应用界面4.1 使用Interface Builder:Xcode提供了一个可视化界面设计工具Interface Builder,你可以通过拖拽组件来布局界面。
拖拽按钮、标签、文本输入框等可视化组件,设置其位置、大小等属性。
4.2 编辑界面布局:通过调整组件的约束条件,使其在不同尺寸的屏幕上能够自适应显示。
4.3 设置界面交互:使用代码为组件添加响应事件,实现用户交互的功能。
五、编写业务逻辑5.1 添加视图控制器:视图控制器是连接应用程序界面和数据的重要组成部分。
iOS应用开发精华教程

iOS应用开发精华教程在以下文章中,我将为您详细介绍iOS应用开发的一些精华教程,包括必备的技巧、常见的问题解决方案以及一些优化建议。
希望您能从中受益。
一、概述iOS应用开发是指为苹果公司开发的移动设备(如iPhone和iPad)设计和创建应用程序的过程。
这些应用程序可以在App Store上下载和使用。
iOS应用开发是一门独特的技术,开发者需要了解苹果的开发工具和平台,以及相关的编程语言,主要是Objective-C或Swift。
二、iOS开发环境搭建在开始iOS应用开发之前,您需要配置适当的开发环境。
这包括安装Xcode,苹果的集成开发环境(IDE),以及确保您有一个有效的开发者帐户。
接下来,您需要选择合适的iOS开发语言,并了解基本的开发概念和术语。
三、iOS应用结构一个iOS应用由多个特定功能的屏幕(也称为视图)组成。
每个屏幕通常都由一个视图控制器管理。
视图控制器负责处理用户交互和显示数据。
在设计应用程序时,合理的视图层次结构和良好的用户界面设计至关重要。
四、UI设计和界面构建在iOS应用开发中,用户界面(UI)是非常重要的。
应用程序的外观和交互方式对用户体验起着决定性的作用。
开发者需要学习使用Interface Builder来创建界面元素,包括按钮、标签、文本框等,并学会使用Auto Layout来实现自适应的布局。
五、数据存储许多iOS应用程序需要在本地存储和管理数据。
开发者可以使用Core Data框架、SQLite数据库或其他存储解决方案来实现数据持久化。
了解存储选项以及如何有效地管理数据对于应用的成功非常重要。
六、网络通信许多应用程序需要与互联网进行交互,从而实现从远程服务器获取数据或将数据上传至服务器等功能。
在iOS应用开发中,开发者需要学习如何处理网络请求、解析和序列化数据以及处理错误和异常情况。
七、性能优化iOS应用的性能是用户体验的关键因素之一。
开发者需要了解一些优化技巧,以确保应用在性能和响应方面表现良好。
如何开发iOS应用程序

如何开发iOS应用程序近年来,随着移动设备越来越普及,iOS应用程序的开发越来越受到人们的关注。
作为一名开发者,想要开发一款优秀的iOS 应用程序,需要了解许多开发技术和规范。
下面,笔者将从开发前准备、技术栈选择、UI设计、性能优化等方面,为大家分享如何开发一款iOS应用程序。
一、准备工作在开始开发iOS应用程序前,我们需要进行一些准备工作:1. 购买合适的设备:为了测试应用程序的运行情况,我们需要至少一台能够运行iOS系统的设备,如iPhone、iPad、iPod touch 等。
同时,我们还需要一台Mac电脑,因为只有在Mac上才能进行iOS应用程序的开发。
2. 注册苹果开发者账号:为了发布iOS应用程序,我们需要注册苹果开发者账号。
在进行账号注册前,我们需要确保自己有一张Visa、MasterCard或美国Express信用卡,因为注册需要支付99美元的年费。
3. 下载Xcode:Xcode是苹果官方推出的开发工具,支持Objective-C、Swift等多种编程语言。
在开始开发前,我们需要先下载并安装Xcode。
二、技术栈选择在选择技术栈时,我们需要根据开发需求和个人喜好来进行选择。
目前,iOS应用程序开发常用的技术栈主要包括:1. Objective-C语言:Objective-C是iOS应用程序开发中最早被广泛使用的编程语言。
Objective-C是C语言的超集,它支持面向对象编程、消息传递机制等特性,是iOS应用程序开发的主流语言之一。
2. Swift语言:Swift是Apple在2014年推出的编程语言,它兼容Objective-C,同时支持类型推导、函数式编程等特性,更加灵活和易用。
Swift因其简洁、快速和安全而受到广泛的欢迎,逐渐成为iOS应用程序开发的主流语言。
3. React Native框架:React Native是Facebook推出的一款跨平台开发框架,它基于JavaScript语言,可以使用同一份代码开发iOS和Android应用程序。
iOS APP开发工具大盘点

iOS APP开发工具大盘点随着iphone5的持续走俏,其操作平台iOS 和开发语言Objective-C都跟着沾了光。
iOS 6还未推出就广受瞩目,Objective-C更是成为市场占有率第3的开发语言。
目前基于iOS的APP应用有着巨大的市场潜力,多家知名控件厂商也相继推出了支持创建iOS平台的应用程序的新控件,接下来慧都就为您一一盘点那些能够开发出iphone、ipad应用程序的控件。
1、DevExpress作为界面控件的龙头老大,DevExpress在早在两年前的DXperience11.2版本中就推出了支持创建iOS应用程序的相关控件,让用户无需学习Xcode和Objective C,使用Visual Studio和技术便能实现针对iOS开发APP。
在DXperience 12.1中实现了功能的全面提升。
优化触摸屏界面,利用现有的库,实现了iOS中的大多数的交互功能,支持内容的滚动,缩放,拖拽,并修改了界面元素,使它更适合于用户的指尖大小,从而获得更好的触摸屏体验效果。
DXperience中的所有控件都支持创建iOS的应用程序,共有16类的子控件,包括Data Grid、Charting等,全面支持iphone、ipad应用程序开发。
2、ComponentOneComponentOne Studio for iPhone是ComponentOne推出的专门应用于iPhone Web应用开发的控件,内含12个子控件,包括可以创建iphone用户熟悉按钮的Buttons控件,可以创建三维动画视觉导航的CoverFlow控件等等。
可以使用现有的技术将Web应用程序应用到iOS中。
它非常易用且严格遵循iOS的UX用户体验标准,只需要拖放控件和使用编辑器就可以创建用户体验优秀的iOS应用程序。
它支持底部内容滚动和自定义屏幕大小的功能,所以能够同时支持创建iphone、ipad应用。
3、infragisticsNetAdvantage Ultimate中有四个专门针对移动开发的工具集:包括Ignite UI (前身为NetAdvantage for jQuery),NUCliOS, Iguana UI Community Pack,和 NetAdvantage for Windows Phone。
iOS应用开发使用教程

iOS应用开发使用教程第一章:介绍iOS应用开发iOS应用开发是指使用苹果公司的iOS操作系统和开发工具来创建和发布应用程序的过程。
本章将介绍iOS应用开发的基础知识,包括iOS操作系统的特点、开发环境的搭建、常用的开发语言和工具等。
1.1 iOS操作系统的特点iOS操作系统是苹果公司专门为其移动设备开发的操作系统,具有以下特点:- 安全性高:iOS操作系统采用了多层次的安全机制,能够保护用户数据的安全。
- 稳定性好:iOS操作系统经过了苹果公司严格的测试和优化,具有良好的稳定性和性能。
- 用户体验佳:iOS操作系统的用户界面简洁、直观,给用户带来良好的使用体验。
1.2 开发环境的搭建要进行iOS应用开发,需要搭建相应的开发环境。
搭建开发环境包括以下几个步骤:- 下载并安装Xcode:Xcode是苹果公司提供的一套集成开发环境(IDE),是iOS应用开发的主要工具。
- 注册苹果开发者账号:开发者需要注册苹果开发者账号才能发布应用程序到App Store。
- 设备连接:开发者需要通过Lightning接口将iOS设备连接到电脑,以便进行应用的测试和调试。
1.3 常用的开发语言和工具iOS应用开发主要使用以下编程语言和工具:- Swift:Swift是苹果公司推出的一种现代化的编程语言,易于学习和使用,已成为iOS应用开发的主流语言。
- Objective-C:Objective-C是苹果公司原本用于iOS应用开发的主要编程语言,现在仍然有大量的应用程序使用该语言开发。
- Xcode:Xcode是苹果公司提供的一套集成开发环境(IDE),用于编写、编译和调试iOS应用程序。
- iOS Simulator:iOS Simulator是Xcode提供的一种模拟器,可以在电脑上模拟运行iOS设备的环境,方便开发者进行应用测试和调试。
第二章:iOS应用开发基础本章将介绍iOS应用开发的基础知识,包括应用程序的结构、界面设计、数据存储和网络通信等。
iOS应用程序开发的入门指南

iOS应用程序开发的入门指南随着智能手机和平板电脑的普及,移动应用程序已经成为人们日常生活不可或缺的一部分。
而iOS平台的应用程序数量也不断增长。
因此,开发iOS应用程序的技能已经成为现代开发者必备的技能之一。
本篇文章将介绍iOS平台开发的入门指南,帮助初学者快速上手。
一、安装和配置开发环境在开始iOS应用程序开发之前,我们需要安装和配置必要的开发工具。
首先,需要一台Mac电脑。
因为iOS应用程序只能在苹果操作系统上运行,Xcode开发工具也是只能安装在苹果的电脑上。
其次,我们需要安装Xcode IDE,这是一个被广泛应用于iOS 开发的工具。
Xcode为全面的应用程序开发提供了支持,涵盖了设计、开发和调试等各方面。
它还可以模拟iPhone和iPad,提供开发环境,让开发者能够开发和测试他们的应用程序。
在安装Xcode之前,我们需要执行以下步骤:1.检查Mac OS X版本:Xcode只能在Mac中运行,首先要确认电脑已经安装的操作系统是否具有相应的最小支持版本。
2.更新Mac:确保你的Mac系统和软件更新到最新版本,这样可以保证Xcode在正常工作中不会出现不必要的故障。
2.安装Xcode:在苹果应用商店中搜索“Xcode”,并下载安装最新版本的Xcode。
二、学习Objective-C语言Objective-C是iOS应用程序开发中最主要的编程语言,其语法与C语言类似,但也有许多独特的特性。
在学习Objective-C之前,需要掌握C语言的基础知识。
Objective-C的学习需要掌握以下内容:1.类和对象:Objective-C是基于类和对象的编程语言。
在Objective-C中,类是由属性和方法组成的。
属性指的是类中声明的变量,而方法是该类操作这些变量的函数。
2.内存管理:Objective-C使用手动的内存管理,需要开发人员在合适的时候创建和删除对象。
3.消息传递:Objective-C是一种面向对象的语言,对象之间通过消息传递进行通信和交互。
中文版IOS APP开发教程发布

中文版IOS APP开发教程发布苹果更发布了中文版iOS APP开发教程《马上着手开发iOS APP应用》,以方便和吸引更多的中国开发者来开发iOS APP。
中文版开发教程主要包括5 个章节:1、介绍和设置2、马上开始3、工具、程序设计语言和基本任务4、框架、设计模式、用户界面设计、应用程序设计和App Store5、查找信息和接下来做什么现在开始开发iOS APP应用开发iOS APP应用既有趣又回报丰厚,如果您是一位新手,自然想知道从哪里入手。
本路线图提供了iOS APP应用开发的绝佳起点。
在Mac 电脑上,您可以创建在iPad、iPhone 和iPod touch 上运行的iOS APP应用。
遵循本路线图以了解如何取得开发工具,理解主要概念及最佳实践,并学会查找更多信息。
继续遵循此路线图,您将使用到Xcode 和iOS SDK(Apple 提供的开发工具)。
您将了解Objective-C(驱动所有iOS APP应用和框架的程序设计语言)的编程基础知识,并将探索Cocoa Touch 框架。
您将创建一个简单的iOS APP应用,并学会在设备上进行测试。
最后,您还会学到如何将应用程序提交到App Store。
路线图中的每个页面,都介绍一个新主题,并链接到一篇或多篇有关该主题的简短文章。
路线图只是提供基本的入门知识,最后一页“接下来做什么”包含您接下来应该阅读的文稿链接。
完成了路线图,您就具备了进一步了解各个主题的能力,并且掌握到着手开发iOS APP应用的知识、工具和技能。
如果您是Mac 开发者:您其实已经掌握了不少开发iOS APP应用的知识。
可是,尽管iOS 和OS X 使用相同的开发工具和开发语言,两者仍然存在着一些重大的差异(您将在路线图的学习过程中发现这点)。
有关这些平台差异的全面描述,请参阅iOS Technology Overview(iOS 技术概述)中的“Migrating from Cocoa”(从Cocoa 迁移)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Developing for the App StoreContentsAbout the Application Development Process5At a Glance5Developing for Apple’s Platforms Is a Mix of Administrative and Coding Tasks5 Apps Published on the App Store Must Be Approved by Apple5Apps Published on the App Store Must Be Cryptographically Signed6The Majority of Your Coding Time Is Spent in Xcode6Administrative Tasks are Performed with Several Resources6Many Behaviors of an App Are Defined by Data,Not Code7How to Use This Document7Building an App for the App Store8Prepare the Development Team8Configure the Project8Develop the App9Publish the App in the App Store9Preparing the Development Team10Enrolling in an Apple Developer Program10Adding Members to a Team11Understanding Membership Privilege Levels11Organizing the Team in iTunes Connect13Organizing the Development Team14Creating Your Team’s Signing Certificates17An Example:Signing an iOS App During Development17Setting Up a Developer for Code Signing20To Learn More21Creating a Project22Configuring an Xcode Project for an App22Creating Provisioning Profiles for Your App23App Concepts23A Bundle ID Uniquely Identifies an App24App IDs Are Used to Match Apps to Services and Development Teams25Provisioning Profiles Authorize an App to Launch26ContentsDistributing an App Requires a Distribution Profile28To Learn More28Developing an App29Designing an App30Use the Model-View-Controller Pattern31Use Data-Driven Designs32Writing Code33Treat Warnings as Errors33Use the Analyze Action in Xcode to Find Less Obvious Coding Errors34 Implement Unit Tests and User Interface Tests34Polishing and Testing an App35Test on Various Devices35Use the Archive Action to Create Test Versions of an App35Use Instruments to Guide Your Efforts35Ensure That Your App Meets the Approval Guidelines36Creating Great Apps36Design User-Focused Apps36Develop a Security Model36Ensure Your App Runs Reliably37Tune Your App’s Performance38To Learn More38Best Practices in Coding and App Design39Publishing an App in the App Store40Configuring App Data in iTunes Connect40Submitting the App for Approval41Shipping an App41Responding to User Issues42To Learn More42Document Revision History44Glossary45Figures and TablesBuilding an App for the App Store8Figure1-1Development process overview8Preparing the Development Team10Figure2-1Steps to create a development team10Figure2-2An individual is the team agent15Figure2-3A small development team15Figure2-4A large development team16Figure2-5Overview of the iOS development provisioning process18Figure2-6The process for approving a device and getting a signing certificate20 Table2-1Team roles12Table2-2Privileges assigned to each membership level12Table2-3iTunes Connect roles and responsibilities13Table2-4Abbreviated list of iTunes Connect modules,including availability by role14Creating a Project22Figure3-1Starting a new project22Figure3-2Common uses for an app’s bundle ID24Figure3-3Explicit app ID25Figure3-4Wildcard app IDs26Figure3-5Examples of wildcard matching26Figure3-6Overview of the development provisioning process27Developing an App29Figure4-1The development process29Figure4-2The development process is an iterative process29Figure4-3Distribution between development tasks varies over time30Figure4-4Model-View-Controller pattern31There has never been a better time to create apps for iOS and OS X.Apple provides tools that make development easy and straightforward.This document presents a high-level view of the stages in developing an app,from creating a team to responding to feedback fromusers.Develop Test DistributeAt a GlanceThis document walks you through the process of developing apps for the App Store.By the time you finish reading this document,you should be ready to organize your development team and devise a plan to design,code,and publish an app on the App Store.Developing for Apple’s Platforms Is a Mix of Administrative and Coding Tasks Most of the time spent developing your app is spent on coding tasks,but throughout the development process,there are also a number of administrative tasks you must perform.This mix of tasks can be handled by a single developer,or the work can be divided between different people on a development team.Most administrative tasks appear at the start and the end of a development project.For example,when you develop your first app,one person must sign an agreement with Apple to become an Apple developer.This person,known as the team agent ,bears the legal responsibility for the team,adds people to the team and defines each person’s responsibilities and privileges.Chapters “Building an App for the App Store” (page 8)Apps Published on the App Store Must Be Approved by AppleThe App Store is a curated store and restricts what apps may be sold on the App Store.Apple takes these precautions to provide the best experience possible for our users.For example,apps that are sold on the App Store must not crash or exhibit other major bugs.A major part of the publishing process is to submit your app to Apple for approval.About the Application Development ProcessAt a GlanceRelevant Chapters “Publishing an App in the App Store” (page 40)Apps Published on the App Store Must Be Cryptographically SignedCode signing is used to provide a layer of security to users,your development team,and Apple.Signing an app makes it resistant to malicious tampering;if an attacker modifies the app,it can no longer be executed because the code signing has been broken.Code signing also provides a clear chain of responsibility if malicious code is included in a signed app.Although both iOS and OS X require code signing to publish an app on the App Store,iOS takes this security a step further;no apps can execute on an iOS device,even during development, unless they are signed.When you organize a development team,the team agent(or a person that task is delegated to)decides which members of your team are permitted to sign your apps and creates the necessary code signing resources for those developers.Relevant Chapters “Preparing the Development Team” (page 10),“Creating a Project” (page 22)The Majority of Your Coding Time Is Spent in XcodeXcode integrates coding,debugging,and user interface design in a single development environment.You use Xcode throughout the development process,even using it when you are ready to submit an app for approval. When you install Xcode,other apps are installed with Xcode that you can use to improve the quality of your apps.For example,the Instruments application provides many tools to record and analyze data about how an app acts while ing the data,you can formulate plans to ensure that your apps run correctly and efficiently.Relevant Chapters “Creating a Project” (page 22),“Developing an App” (page 29)Administrative Tasks are Performed with Several ResourcesWhen you manage a team,you use various resources to perform tasks.Here are the most frequently used resources:●The Member Center website is primarily used by the team agent to invite members to join the developmentteam and to configure their privilege levels.●The iOS Provisioning Portal(or for OS X development,the Developer Certificate Utility app)is used tocreate the code signing resources for your team.A team admin(either the team agent or a member of the team this task has been delegated to)uses these tools to provide the necessary code signing resources to members of your team.How to Use This Document●The iTunes Connect website is used to manage information related to the business side of your appdevelopment,including sales and financial information,information displayed in the App Store for your app,and information stored on Apple’s servers for your apps.As with the Member Center,the team agent decides how much access each person on your team is permitted on iTunes Connect.Relevant Chapters “Preparing the Development Team” (page 10),“Creating a Project” (page 22),“Publishing an App in the App Store” (page 40)Many Behaviors of an App Are Defined by Data,Not CodeIn addition to the code you write,data you provide is used to define how the store displays your app as well as how your app executes.The data can even affect what the operating system displays about your app when it isn’t running.Some data is contained in files stored alongside an executable;this combination of data and files is referred to as an application bundle.Other data is stored on Apple servers—for example,information displayed for your app on the App Store is primarily stored on iTunes Connect.Regardless of where the data is stored,keep in mind that an app is more than a simple executable;it exists in an ecosystem of code,data,and services.Relevant Chapters “Creating a Project” (page 22),“Developing an App” (page 29),“Publishing anApp in the App Store” (page 40)How to Use This DocumentRegardless of the role you play on a development team,you should read this document to get a better understanding of steps the team must follow to develop an app for the App Store.If you are a programmer,some concepts described in this document will make more sense to you if you finish one of the following app tutorials before reading this document:●iOS:Start Developing iOS Apps Today●OS X:Start Developing Mac Apps TodayBuilding an App for the App StoreHere are the steps to create and ship an app for the App Store.Although these steps are presented in a specific, logical order,occasionally the needs of your app or your development team require you to perform these steps in a different order or even backtrack to a step you have already performed.For example,any time you add someone to your team,you have to go back and perform some administration tasks.Figure1-1shows a high-level overview of the development process;each of these steps is primarily an administrative step or a coding step.Administrative steps are usually handled by the team agent or someone the team agent has delegated some authority to.Coding tasks are primarily handled by programmers on the team.Figure1-1Development process overviewThe remainder of this chapter explains each of these ter chapters go into more detail about the steps and the kinds of tasks that must be performed to complete them.Prepare the Development TeamOne person signs up as a team agent and in the process creates a new development team.The team agent can invite other people to join the team and set their access privileges.Finally,the team sets up code signing certificates and other resources necessary for developers on the team to sign apps.Configure the ProjectThe next step is to create a new Xcode project for the app.You choose an Xcode template that most closely corresponds to the kind of app you want to make and customize the initial settings for the app.You also create other items required to sign and publish your app.Building an App for the App StoreDevelop the AppDepending on the design of your app and the services you plan to use in it,you may find yourself performing other kinds of app configuration in this step.Some Apple technologies require a combination of code you write and data you configure to operate properly.For example,Apple Push Notification Service requires you to create special certificates used to authenticate your server to the push notification service.If you know up front that you plan to use push notification in your app,you may also create these push notification certificates during this step.Develop the AppThis step is what most people think of when they talk about developing an app:Designing user interfaces and functionality,implementing those ideas in code,and testing the resulting app to ensure it works correctly. While a lot of this work is programming,this step also includes other important tasks,such as creating data assets used by the app.These assets,including but not limited to icons,sound files,and artwork,are used directly by the app or by the operating system on the app’s behalf.Many assets need to be localized into other languages or locales;an important part of designing your app is planning for the assets you need to create and knowing which assets should be localized.You continue to polish and refine your app until it is ready to ship.Publish the App in the App StorePublishing an app on the App Store requires a few administrative tasks.Your team provides the information displayed for the app by the App Store.You also submit the app to Apple for approval.Once the app is approved, you set the date the app should appear for sale in the App Store.Then,you use Apple’s tools to monitor the sales of the app,customer reviews,and crash reports.These data can help you prepare bug fixes and help you decide on what improvements to make in a major revision to the app.When you have bug fix or a major revision ready to ship,you send it for approval and set a publication date,just as you did for the initial release.Preparing the Development TeamMost people think of a development team as a group of programmers,designers,and artists who work together to develop an app.That explanation is also true when you develop for iOS or OS X,but it isn’t complete.A development team takes on the additional meaning of a group created and managed on the Apple Developer website.Some additional tasks during the development process are performed using this development team you’ve created.If you create a team with yourself as the only member,you take on all of these tasks.If you are part of a larger team,the work and the responsibilities may be divided between the group.Each person on the development team has a unique Apple ID,an account used by the developer programs to authenticate that person.Further,access privileges can be configured separately for each person.This flexibility allows your team to restrict critical tasks,such as publishing the app on the App Store,to a small subset of its participants.This chapter starts by describing the various roles that members of a team may fill.It then provides guidance about how you may want to go about organizing the team.Finally,it describes work the team must do to allow people of the team to sign apps.Figure2-1shows all of the required steps.Figure2-1Steps to create a development teamAdministrativeEnrolling in an Apple Developer ProgramTo start,one person must enroll in either the iOS or OS X developer program;this person becomes the team agent for the team.The team agent may enroll in both programs if your team intends to develop apps for both operating systems.During this step,the team agent signs the legal agreements required to become an Apple developer and prepares the financial paperwork so that the team can be paid for purchases from the App Store.The team agent is special;he or she has unrestricted access to the team and is legally responsible for the team. The team agent also performs most of the tasks to organize the team.If desired,after others have joined the team,the team agent can delegate some of this authority to other members of the team,allowing those others to perform these tasks instead.Important Because the team agent is the person with legal responsibility for the team,the team may not demote the team agent using the tools on the website,nor can the team agent’s privileges be restricted. To change the person acting as the team agent,you must contact Apple directly.The team agent might need to sign updated or new licensing agreements,particularly when the team wants to incorporate specific technologies into an app.For example,an app that uses the iAd service requires your team agent to sign a separate agreement.Adding Members to a TeamAfter the team agent has joined a developer program,he or she adds other people to the team and sets their privileges.If you are the team agent and the sole developer on your team,no additional configuration is needed,because the team agent always has access to all account features.However,you should continue to read this section to understand the kinds of tasks you may need to perform throughout the rest of the development process.To add a new person to the team,the team agent sends an invitation to the person;part of sending an invitation includes setting that person’s privileges on the team.When he or she accepts the invitation,that person is automatically added to the team.Understanding Membership Privilege LevelsA person’s membership level on the team defines the level of access he or she has to the Apple developer webpages and the team information stored there.This privilege level extends to the kinds of tasks that developer is allowed to perform on behalf of the team.For example,only certain members of the team are allowed to publish apps on the App Store.By giving you control over these task privileges,Apple makes it easier for you to maintain good security practices for the team.If the team has joined multiple developer programs,when you configure a person’s privileges,you set a separate privilege level for each program.You can also choose to not give someone access to a program.Table2-1lists the roles a team participant can play and provides a basic description of each.Each level of access includes all the capabilities of the levels below it.Table 2-1Team roles DescriptionRole A team agent is legally responsible for the team and acts as the primary contact withApple.The team agent can change the access level of any other member of the team.Team agent A team admin can set the privilege levels of other participants,although a teamadmin cannot demote the team agent.Team admins manage all assets used to signyour apps,either during development or when your team is ready to distribute anapp.Team admins are the only people on a team that can sign apps for distributionon nondevelopment devices.Team admins also approve signing certificate requestsmade by team members.Team admin A team member gains access to prerelease content delivered by Apple on thatprogram’s portal.A team member can also sign apps during development,and butonly after he or she makes a request for a development signing certificate and hasthat request approved by a team admin.Team memberTable 2-2drills deeper into this list of privileges granted to members of your team.Although this document hasn’t explained all these privileges,most will be clear to you by the time you finish reading it.Table 2-2Privileges assigned to each membership level TeammemberTeam admin Team agent Privilege Legal responsibility for the teamPrimary contact with AppleInvite team admins and team membersApprove a request for a development signingcertificateAdd devices for development and user testingCreate app IDsRequest a distribution signing certificate from AppleCreate development and distribution provisioningprofilesTeammemberTeam admin Team agent Privilege Enable app IDs to use Apple Push Notification orIn-App PurchaseCreate SSL certificates for the Apple Push NotificationServiceRequest a development signing certificateDownload development provisioning profilesView prerelease website contentOrganizing the Team in iTunes ConnectThe privileges set in the previous section primarily pertain to the development process:They define who is allowed to sign apps,who is allowed to create signing certificates,and so on.However,the team agent also manages access privileges to the iTunes Connect website.For example,changing the price of an app is a task you likely want to limit to a small number of people on your team.Access to the iTunes Connect website is configured separately and is designed to be more fine-grained than the access you set in Member Center.On iTunes Connect,each person on the team can be assigned one or more roles;each role has different privileges.Table 2-3describes the roles at a high level.Table 2-3iTunes Connect roles and responsibilities ResponsibilitiesRole The legal role is automatically assigned to the team agent,and only the team agent ispermitted to have this access.The legal role allows the team agent to sign legal contractsand other agreements.Legal The admin role grants access to all tasks in iTunes Connect except for those assigned tothe legal role.A team agent is always assigned the admin role,and this access cannot berevoked without changing which person on the team acts as the team agent.An admincan assign iTunes Connect roles to other people on the team.Admin The finance role grants access to financial reports and sales information.The finance rolealso authorizes the person to view contract,tax,and banking information.Finance The sales role grants access only to sales data.SalesOrganizing the Team in iTunes ConnectResponsibilitiesRoleTechnicalThe technical role grants the ability to edit the app information stored in iTunes Connectand to create test accounts needed to test In-App Purchase support in an app.Table2-4lists the most common modules you need to access in iTunes Connect,along with the roles that are allowed to access each module.The legal role is not shown,because only the team agent has those rights.All participants have the ability to edit their own personal details stored in their accounts in iTunes Connect.Table2-4Abbreviated list of iTunes Connect modules,including availability by roleAdminResponsibilityFinanceTechnicalSalesManage UsersManage Your ApplicationsManage Test UsersSales and TrendsContracts,Tax,and BankingPayments and Financial ReportsOrganizing the Development TeamNow that you understand the roles people can assume in Member Center and iTunes Connect,you should consider how you want to organize the anizing the team requires more than setting privileges described above.The size of the team affects how you organize it and its assets.The smallest team is a single person—you.You act as the team agent and have full privileges to perform any task.The disadvantage of a one-person team is that you have to do all the work.You need to set up the assets needed to sign and publish an app,configure all the information in iTunes Connect,develop an app,and market it.Figure2-2An individual is the team agentAgentAdminMembersA more common configuration is a small developer team.On a small team,the team agent is also a programmer, but defers some of the administration overhead to another person on the team.The team agent handles all of the financial and sales operations for the team,while the team admin ensures that the developers on the team have what they need to get the job done.Figure2-3A small development teamSource code serverAgentAdminMembersIf your team is large,you can divide the tasks further.Some people on the team might not be programmers,including the team admin.The sales and financial roles might be filled by people with a business background.You might even have in-house testers who are not also programmers.The task of creating and shipping apps could be delegated to one or more dedicated team admins.You might even partition the work further and divide the team between iOS and OS X development.Figure 2-4A large developmentteamBuild botAgentAdminsFinanceSalesTestersMembers As the team grows,the need for coordination between the different people on the team increases.In particular,the cost of development errors increases when you have more programmers on the team.For example,if you are the sole member of the team,you can store all your work on a single computer and do all of the work there.Xcode even allows you to create a local source code repository to store your code.But what happens when the team grows in size?When the team grows to a moderate size,you need more infrastructure.You want a separate computer to act as a remote source code repository;members of the team pull down the code from the remote repository to their computers,make changes,and send those changes back to the server.But when multiple developers are syncing code,the chance of an error being checked into the code increases.To minimize problems,you usually want multiple branches of development,including stable branches that hold the code you use to build yourshipping app and experimental or developmental branches used for new development.These strategies require a deeper understanding of the underlying source code repository and require you to define specific policies that describe how code gets integrated between the different branches you maintain.If your team grows very large,checking erroneous code into developmental branches could impair your team’s productivity.By the time you discover an error,it might already have been synced to other people’s computers. After you correct the error,propagating the fixes to everyone on the team still takes time.The frequency of such incidents and the time lost for each incident increase as the size of the team increases;these losses,when aggregated,cripple your team’s effectiveness.To avoid this lost productivity,you should add additional infrastructure for code management.For example,you might adopt a process of continuous integration by creating a dedicated build machine(known as a build bot)that automatically checks out each change and rebuilds your app.By building new changes as they arrive,you discover errors earlier;you might even configure the server to back out such changes before others on the team pull down the offending code.If your project includes unit tests or automated user tests,the build computer can also run those tests to verify that your source code still passes the tests.This process,known as smoke testing,increases the team’s confidence that code stored in the development branches builds and works properly.As the team grows larger,you want to automate tasks that are repeatable,predictable,and costly to perform by hand.By automating common tasks,you reduce the burden on the team and allow it to focus on designing and implementing code.Creating Your Team’s Signing CertificatesApps distributed on the App Store must be cryptographically signed.You may also need to sign the app during development.●On OS X,an app must be signed during development if it uses iCloud or application sandboxing.●On iOS,all apps must be signed during development.Regardless of which platform you are developing for,everyone on the team should understand the code signing process.This section describes the assets that are needed to sign an app and authorize it to run on a device,and then explains how people on the team acquire the assets they need to sign apps.Some of these assets should be created now as you organize your team;the rest are created each time you start a new project.An Example:Signing an iOS App During DevelopmentFigure2-5shows everything that is needed to build and sign an iOS app during development.Signing apps during OS X development or signing to distribute an app on either platform follows similar procedures.For now,focus on this example.While you are developing an iOS app,it can only be installed on iOS devicesspecifically marked for development.To run an app on such a development device,you install a signed version of the app and a development provisioning profile that authorizes the signed app to be launched.Without a profile that authorizes it to launch,iOS prevents the app from launching.Figure 2-5Overview of the iOS development provisioning processBuild and signSigned applicationTeam adminDevelopment deviceCreating development provisioning profiles is described in detail in “Creating a Project” (page 22);for now,understand that a development provisioning profile is a signed file whose contents define the scope of the profile:●The development profile authorizes a specific set of apps to run.●The development profile authorizes a specific list of devices to run those apps.●The development profile authorizes a specific list of development certificates to sign those apps.。