当前位置: 首页 > 科技观察

编写iOS应用程序之前必须做的7件事(附相关资源)

时间:2023-03-20 21:20:07 科技观察

在过去的两年里,我一直在编写和发布高质量的iOS应用程序。我发现大多数开发人员都倾向于直接编写应用程序的核心逻辑,因为那才是乐趣所在。遵循一个过程进行开发很无聊。我学到的最有效的方法是,如果您预先花一些时间正确设置您的项目,您将在未来节省大量时间。如果您是独立开发者,您可能没有意识到下面提到的这些步骤的重要性。大多数出色的应用程序都是由团队开发的,遵循这些步骤肯定会减少您的挫败感并提高应用程序的质量。1.为项目设定编码风格规范编码风格规范是指在用特定语言编写代码之前必须明确遵循的风格和约定。它包括诸如是使用tab键还是空格键,如何命名变量以及特定语言本身的约定(例如在swift语言中是否使用Classes或Structs)。编码标准本身没有对错之分。在项目开始前,你可以设定自己的编码风格,但必须保证同组的人遵守相同的规范。编码标准可以保证代码更统一,更易读。一些公司拥有针对Objective-C和Swift语言的开源编码约定。RayWenderlich/SwiftStyleGuideGitHub/swift-style-guideNYTimes/objective-c-style-guide2.在编写代码之前确定应用程序架构在编写代码之前,确定应用程序架构非常重要。良好的架构可以提高应用程序的可测试性,使其更易于理解并降低维护成本。您可以使用传统的MVC架构,也可以使用更流行的MVVM或VIPER架构,这里有大量关于这些架构的资源。iOS架构模式(中文版:iOS架构模式——解密MVC、MVP、MVVM和VIPER架构)第13期架构*objc.io现代应用架构(Reactive编程、MVVM及以后)3.按顺序设置应用的目录结构数百个源代码文件从头到尾都存放在同一个目录下。最好根据项目的结构来制定目录结构。例如,你可以使用如下目录结构:首先,在Xcode的ProjectNavigator中,将项目名称分组下,以组的形式创建它们(黄色的小文件夹),然后,通过打开右侧的FileInspectorXcode的,将每个创建的组链接到真实项目路径下对应的目录,并点击FileInspector文件夹图标中的小灰色,在项目目录下创建组名对应的子目录。这似乎是一件小事,但它可以使您的项目更有条理和易于理解。想了解更多目录结构,请参考以下资源:futurice/ios-good-practices4.项目依赖管理当然你会在项目中使用第三方库。在项目中,可以通过三种方式管理项目依赖。CocoaPodsCocoaPods是Swift和Objective-CCocoa项目的依赖管理库。它拥有近10,000个开源库,可以帮助您优雅地管理项目的规模。这是进行依赖管理的最有效方式,就像Ruby中的gems一样。Youtube上有一个googledevelopers制作的搞笑视频(地址,翻墙)解释了为什么项目中一定要使用CocoaPods。Github子模块您还可以使用Github子模块将您的项目依赖项作为子存储库进行管理。GithubSubmodules相对于CocoaPods的优势在于它们是子仓库——这不仅意味着git和gitGUI隐含地识别它们,而且获得更多支持也意味着你的项目依赖项可以更紧密地链接到它们的git仓库,同时可可足不能。子模块的问题在于您的项目不拥有您所依赖的库的源代码,它只有一个引用子模块的存储库。在大多数情况下,您无法控制这些存储库。CarthageCarthage被认为是向Cocoa应用程序添加框架的最简单方法。Carthage使用xcodebuild编译框架二进制文件,但将集成任务留给用户。CocoaPods的目标是对用户简单,但Carthage对用户来说是灵活的和不干涉的。遗憾的是,Carthage最大的缺点是它只支持iOS8及之后的版本。在这三者中,我使用最多的是CocoaPods,也是我个人最喜欢的,因为它非常容易设置,并且可以让您访问数以千计的第三方库。5.为应用程序设置合适的Scheme当您单击Run、Test、Profile、Analyze或Archive操作时,Schemes会告诉Xcode将发生什么。通常,每个操作都对应一个目标和一个构建配置。还可以传递启动参数,比如应用程序运行的语言(对测试本地化很有用)或者在调试时设置一些判断标志。建议Scheme的命名规则采用MyApp()【环境】:也可以使用Target做不同的release、test、development来编译程序,如下所述:HowtoUseXcodeTargetstoManageDevelopmentandProductionBuilds6.设置合适的Certificates和ProvisioningProfiles是开发者在测试和发布应用过程中最麻烦也是最重要的步骤。代码签名需要证书,以便您可以在真实设备上运行应用程序。证书有两种类型:开发证书:每个开发团队都有自己的证书,需要按要求生成。Xcode会为您完成此操作,但最好不要单击“修复问题”按钮,并了解单击此按钮实际执行的操作。开发证书是向设备发布应用的开发版本。发布证书:可以有多个,但最好为一个公司保留一张发布证书,并通过内部渠道共享相关秘钥。将应用程序发布到AppStore或公司内部的企业级应用程序分发时需要此证书。ProvisioningProfilesProvisioningProfiles可能是系统中最令人困惑的部分,如果您访问Apple开发者网站,您会注意到您可以创建两种类型的ProvisioningProfiles(开发和发布)。配置文件是“使用此证书的私钥签名的应用程序将在这些设备上正确运行:https://www.quora.com/What-are-the-differences-between-certificates-provisioning-profiles-and-identifiers你可以阅读更多相关资源:MaintainingYourSigningIdentitiesandCertificatesWhatisaProvisioningProfile?Part27.设置应用持续集成和交付流程建立持续集成和交付流程已经成为关键,因为现在它可以帮助你找到在开发早期发现错误并节省大量开发人员时间。持续集成(CI)是一种开发实践,要求开发人员每天多次将代码同步到共享存储库。每次提交都使用可以使用的自动化脚本进行验证团队尽早发现问题,很多工具可以帮助你做iOS应用的持续集成,比如XcodeServer,Jenkins和TravisCI。关于XcodeTr中的持续集成avis-CI:TestandDeploywithConfidenceiOSCIwithJenkinsContinuousDelivery(CD)是一种软件工程方法,使团队能够在短周期内开发软件,确保软件可以随时可靠地发布。它旨在更快、更频繁地构建、测试和发布软件。为什么要使用持续交付?您可以节省准备应用程序提交、上传屏幕截图和发布应用程序的时间。如果同事正在休假,而您发现需要修复和发布的严重错误怎么办?发布更新版本时,您不需要依赖一个人。通过更频繁和更小的版本更新提高软件质量和响应时间。虽然有大量的持续交付工具,但我个人最喜欢的是Fastlane。它非常容易安装,并提供一些强大的功能,可以使您的整个构建和发布过程自动化。Fastlane如果您喜欢这篇文章,请推荐它,以便其他人也能看到。