Tag: Ios开发

iOS Developer首席财务分析师🚀

从Lead Finance Analyst过渡到iOS Developer的18个月过渡的简短见解。 2015年12月 🏦 我是26岁的结构化财务分析师。 我正在开发和使用高级现金流量模型来领导对亿万结构性金融交易的分析。 听起来很酷,但事实并非如此。 2016年一月 由于对技术领域的好奇心,我开始了一个副项目Boolerang.co.uk-一个 伦敦科技工作平台。 很有趣。 我正在学习新的编程语言,开发新技术,并通过在线平台将软件工程师与雇主联系起来。 我一直很喜欢编程,但是从没有如此接近这个领域的机会。 2016年4月 🚀 全职。 Finance 0,Boolerang1。我离开了首席结构财务分析师的职位,全职从事Boolerang的工作。 自从大学期间在洛杉矶工作以来,这是我与工作相关的工作中获得的最大乐趣。 这也是我去过的最“失业”的时期,这真是令人恐惧。 👻 话虽这么说,伦敦的技术人才需求/供应差距令人难以置信地令人难以理解,这为我的决定提供了支持。 到本月底,Boolerang已有200多名雇主发布工作,并且软件工程师似乎很容易找到并吸引该平台-尤其是当我在“没有招聘人员的地方”下线时。 😆 iOS工程师并非如此。 2016年五月 生活是美好的。 Boolerang很好。 关于越来越难以捉摸的“ iOS工程师”,我与雇主之间的对话越来越多。 他们表面上的稀缺使我想起了异国情调的阿凡达(Avatar)风格的“ unobtainium”。 因此,我下载了Xcode,这是Apple的iOS驱动的IDE。 没什么… 2016年9月 我在9–9工作。 Boolerang上为9–6,iOS开发上为6–9。 Boolerang正在连接600位雇主和8’000位软件工程师。 我绝对非常喜欢iOS开发。 技术,集成等等,还有一些CocoaPods…👌 2016年12月 🙏 Boolerang需要专职人员,而且获得帮助比我想象的要容易。 现在,我可以花更多的时间在“ iOS’ing”上,同时知道Boolerang具有继续增长所需的一切。 全力以赴。 2017年三月 到这个时候,我已经构建了34个未发布的iOS应用程序,并观看了来自斯坦福大学,苹果大学,乌迪米和树上小屋的数百次演讲。 我的三个金融学前同事离开这个行业,通过Makers Academy /大会寻求软件相关的工作(我认为我对财务和专业技术的不断评论最终通过🙈获得了)。 iOS开发方面的职业? 此时的重返金融的想法令人发笑,没有吸引力,而且Boolerang绝对不如18个月前那么性感。 […]

使用macOS Mojave提升生产力—仅针对Xcode启用暗模式

在2018年WWDC活动中,Apple推出了macOS Mojave,它是macOS High Sierra的后继产品,为Mac带来了最受期待的功能之一。 对于Mac和iOS开发人员来说,这也是一个好消息,原因之一是:macOS的主要IDE和开发工具Xcode多年来一直缺少这种功能。 开发人员社区深信,使用深色IDE或文本编辑器实际上可以提高您的工作效率。 考虑到许多现有的代码编辑器都支持暗模式,例如Visual Studio,JetBrains产品系列以及许多其他模式,这似乎是事实。 问题在于,直到macOS Mojave发行时,Xcode才提供此功能,当发行时,它引起了两个不同的问题。 Mail.app,Calendar.app甚至Finder之类的应用对于许多人来说似乎都不正确 。 作为开发人员,我们习惯于在Light模式下使用这些应用程序,但是我们非常喜欢Dark Xcode,以至于我们难以选择:在系统范围内启用Dark Mode或将其保留为当前状态,从而失去了美妙的Dark同时使用Xcode主题。

VIPER的模块模板:尽量减少忙乱的方法

简介 自从我开始研究iOS已有5年了。 这些年来,我观察到您周围的一切都会随着时间而变化,无论是编程指南,开发语言还是客户(针对敏捷开发过程)给出的初始要求范围。 但是,一件事永远不会改变…… DEADLINE 。 这个词根据情况可能会致命。 如果软件开发有自己的词典,那么DEADLINE一词将始终与之抗争…… 当您在进行可伸缩项目时,通常会使用快捷方式来减少工作量。 其中一些快捷方式只是一段代码 ,可以在网上找到“第三方库”。 另一方面,某些方法只是通过将开发过程中涉及的其他过程最小化/汇总来加速整个开发过程。 与VIPER一起使用,因为您的解决方案体系结构使您熟悉失去分配的每一分钟的痛苦。 在这种情况下,您应该有一些技巧来加快开发过程(如果使用VIPER,与MVC😓相比,您已经在编写3倍的代码了)。 正如我在上一个博客中所承诺的那样,今天我将说明如何为VIPER Project创建模块模板。 入门… 我们需要开发的模块模板将具有与Xcode相同的创建新文件的过程。 为此,您需要转到位置 /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/developer/Library/Xcode/Templates/File\ Templates/Source/ 在此位置,您可以找到许多扩展名为.xctemplate文件夹。 复制文件夹Cocoa Touch Class.xctemplate并将其粘贴到您的桌面,然后再开始浏览其内容,因为您不想弄乱Cocoa Touch默认文件模板。 现在,在Cocoa Touch Class.xctemplate (在桌面上)中,删除除TemplateIcon.png , TemplateIcon Cocoa Touch Class.xctemplate和TemplateInfo.plist之外的所有内容。 现在打开TemplateInfo.plist 。 这是目前对您最重要的文件,因为它将包含许多不同的配置。 在文件中,您可以看到许多键值对集。 但是所有这些都没有必要进行讨论。 让我们逐一地介绍一个人的必要条件。 一种。 描述 (类型:字符串)-描述是指您正在制作的模板的目标/最终输出。 选择您想要描述此模板将执行的操作的任何单词。 b。 摘要 (类型:字符串)-与描述相同。 C。 MainTemplateFile (类型:字符串)-用于命名模块文件。 由于VIPER模块中的所有文件均以模块名称作为其前缀,例如LoginView.swift,LoginPresenter.swift等。这将作为一种变量类型,其值为模块名称。 由于此密钥不存在于plist文件中,因此您需要使用___FILEBASENAME___值添加它。 d。 选项 […]

在iOS设备中安装SSL证书(.cer)

对于开发人员而言,在iOS设备中安装不同的证书是一个常见的工作流程步骤。 有很多方法可以做到,但是我认为这是最简单的一种方法。 高级步骤: 创建临时wifi网络 运行简单的Web服务器 浏览iDevice中的目录 安装证书 详细步骤: 1.建立一个特别的wifi网络 在我的mac机中创建临时网络并没有帮助我。 如果它不适合您,请继续创建热点,然后将iMac和iDevice连接到该wifi。 2.运行简单的Web服务器 在Mac中打开终端。 转到要安装证书的目录 运行以下命令。 python -m SimpleHTTPServer 在Mac中打开浏览器,然后尝试以下地址 http://本地主机:8000 / 理想情况下,您应该看到类似于以下屏幕的内容: 记下您Mac的IP地址。 3.浏览iDevice中的目录 在iDevice中打开safari,然后输入以下网址,然后点按go。 http:// xx:xx:xx:xx:8000 / 如果一切正常,您应该看到类似以下内容: 现在,选择要安装的证书,然后按照iOS抛出的提示进行操作。 请享用!

24小时内的应用程序:我的React Native体验

对于最终版,我删去了一些功能,而略过了其他功能,例如菜单栏,上/下投票动画以及最重要的是语音搜索。 这是一个有趣的小项目,I̶̶a̶m̶̶c̶u̶r̶r̶e̶n̶t̶l̶y̶̶d̶e̶b̶a̶t̶i̶n̶g̶̶o̶n̶̶w̶e̶t̶h̶e̶r̶̶t̶o̶̶o̶p̶e̶nlisht̶i̶n̶t̶l̶y̶n̶-̶ React Native是一个很棒的JS框架,用于构建应用程序,我已经利用该框架构建跨平台应用程序的功能开发了我的第一个功能齐全的android应用程序。 RN非常适合真正的基本应用程序,这些应用程序在应用程序商店中占很大比例。 对于游戏或其他广泛交互和自定义应用程序等其他热门游戏,坚持使用Swift / Objective-c或Java等本地语言将是您的最佳选择。 我肯定会越来越多地使用RN,看看在2017年将带给我什么。 ✌🏾 该项目现已在Github上开源 Apple拒绝了Urban Dictionary应用程序,因为它与现有应用程序过于相似。 🤷🏽‍

每个高级iOS开发人员都应了解的概念。

这是每个高级iOS开发人员都应该知道的概念的摘要(不是按优先顺序排列)。 阅读时,在每个标头上添加“何时使用”。 欢迎提出建议。 不同的架构模式: MVC,MVVM,清洁架构,Viper… 不同的源代码管理选项: Git,Subversion等。Github,GitLab等服务…。 不同的依赖管理器选项: Cocoapods,迦太基。 不同的数据存储选项: Coredata,领域,xml,文件,SQlite,FMDB,SQLCipher….. 编程方法的不同选择: 功能性反应式编程,面向对象的编程,面向协议的编程 框架:反应性可可,反应性Swift,RxSwift,RxCocoa… 解决方案实施中的不同选择: 原生,混合等 框架:Angualar2,ReactNative,Xamarin,Cordova….. 确保代码质量的不同选项: DI,单元测试,测试自动化,TDD,BDD,样式指南,c格式(自动样式指南) 框架:XCTest,iOS快照测试用例,KIF(iOS集成测试框架)… 确保质量的不同过程: 有效的代码审查 工具:坩埚,Atlassian储藏箱,差速器 框架:ObjcLinte,SwiftLint…。 发送推送通知的不同选项: APNS,Firebase,Urban Airship等第三方选项… 跟踪用户行为和分析的不同选项: 谷歌分析 跟踪报告和分析应用崩溃的不同选项: Crashlytics,面料…。 分发用于生产和测试的应用程序的不同选项: 企业与消费者对决(Apple Appstore),曲棍球….. 远程部署应用程序的不同选项: MobileIron,Airwatch…。 CICD的不同选项: 特拉维斯,詹金斯….. 跟踪项目的不同选项: JIRA,混血儿…….. 最初于 2017 年3月27日 发布在 nishabe.wordpress.com 上。

Xcode 9中的VIPER项目模板:当模块模板不够用时…

如今,iOS的要求非常困难(相对于时间)。 这些天的要求就像“我想要像托尼·史塔克(Tony Stark)的钢铁侠西装那样的东西”。但这不是难题。 问题出现了,当在下一行中听到“您有3个星期”,然后您会突然感到吐出这三个神奇的单词的冲动,可惜……..u不能……😕 就像您知道自己可以做到,但另一方面,您对自己的能力提出了质疑……“我能在DEADLINE内完成它吗?” 在满足这些要求时,大多数开发人员更喜欢从头开始工作,他们可以轻松地制定自己的工作策略。 但是,老实说,我们是否有足够的时间……从头开始。 最近,我正在使用新架构VIPER。 在研究了这种面向协议的体系结构之后,我意识到您必须有足够的时间来使用它,因为与MVC相比,几乎必须编写三倍的代码。😟 Xcode Project模板提供的内容是您必须播放的文件的最小限度基本展示。 但是,在进行大型项目时,您需要具有一个良好的结构,其中将包含Enums,Extensions,Constants,Storyboards,Feature Modules等文件。随着您深入了解需求,这种结构会不断发展。 因此,我想到了拥有一个项目模板,该模板将包含一个基本结构以及一些基本模块,例如登录,侧边菜单,仪表板,注销等。至少可以节省两到三天的初始工作时间…😁😁 对于创建项目模板,我想您首先需要了解的是项目模板的外观。 为此,请转到位置/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/developer/Library/Xcode/Templates/Project\ Templates/iOS/Application 在此位置,您可以找到许多扩展名为.xctemplate文件夹。 复制文件夹Single View App.xctemplate并将其粘贴到桌面上,然后再开始浏览其内容,因为您不想弄乱Xcode的默认模板。 首先,将文件夹名称从Single View App.xctemplate更改为Viper Project Template.xctemplate 。 但是更改文件夹名称并不能解决所有问题,而有关TemplateInfo.plist文件的所有操作都位于您必须使用的文件夹下。 打开TemplateInfo.plist 。 现在,像Xcode项目一样,项目模板也具有使它唯一的Identifier 。 对于单一视图应用程序,您可以看到com.apple.dt.unit.singleViewApplication 。 您可以将其更改为任何其他值,例如我使用的“ com.manishKumar.singleViewApplication”。 现在,只需保存TemplateInfo.plist文件,然后复制文件夹Viper Project Template.xctemplate并将其粘贴到复制Single View App.xctemplate 。 退出Xcode,然后重新启动。 现在,当您创建一个新项目时,将有一个类似的选项。 Yippee …😃😃您已经创建了自己的项目模板😎。 但是还没有结束。 根据VIPER结构,我们仍然没有任何内容。 我们现在需要对此进行努力…… 再次打开TemplateInfo.plist (保留在桌面上)。 在该文件中,在Options选项下浏览。 您可以在“ Units下看到两个选项 目标C […]

作为iOS开发人员实习生的12周-第三周

我深入研究了Chris Eidhof的“ Advanced Swift”,Ray Wenderlich团队的“ RxSwift”,并开始在我的第一个大型应用程序屏幕上工作。 Advanced Swift使我对Swift语言的工作方式有了更好的了解。 例如,您可以遍历数组和字典的原因不是因为它们是数组和字典。 因为数组和字典符合Sequence协议,所以可以迭代数组和字典。 序列 -一系列相同类型的值,可让您遍历这些值 遍历序列的最常见方法是for循环 为了符合序列协议,请提供一个返回迭代器的makeIterator()方法 为了符合序列协议,必须实现返回迭代器的makeIterator方法。 迭代器-一次生成序列的值,并在遍历序列时跟踪其迭代状态(for循环) 当然,迭代器必须符合迭代器协议。

使用Alamofire的iOS上的MVCS

MVC(模型-视图-控制器支架)是软件工程界的一种设计模式,已经存在了很多年。 使您的代码在Model,View和Controller之间具有单独的层始终是一件好事。 在iOS World中,MVC是默认的设计模式,因为苹果公司自己在开发生态系统中推荐了这种设计模式。 当您的应用需要保存数据以保存到设备或与服务器进行交互的功能时,MVCS设计模式对您的代码很有用,因为它将“ S”层与“ C”层分开。 那么,什么是“ S”层? MVCS(MVC存储/服务)是一种设计模式,可将数据库或网络交互与控制器分开。 出现此模式是因为Controller处理了许多不同的事情,因此需要对其进行简化。 有人说MVCN(用于联网的N)。 我将向您展示该模式如何在使用Alamofire和SDWebImage的简单网络项目中应用。 分组 这就是我在MVCS设计模式中的项目分组文件夹的方式。 层数 MVCS包含一些不同的层及其职责,分别是模型,视图,控制器和存储/服务。 视图 视图表示如何将数据呈现到视图。 此案例的情节提要文件负责此层。 在这里,我创建一个简单的视图,其中包含UIImageView和两个UILabel以向用户显示。 另外,将其连接到ViewController,以便我们可以通过代码与视图组件进行交互。 模型 我们将通过此链接获取JSON API,并将数据转换为该模型。 在这里,我使用quicktype.io从JSON API快速创建模型。 您可以在此处查看我的完整代码。 结论 MVCS是分离逻辑的一种很好的设计模式,因为每个组件都有自己的职责,但是MVC或MVCS并不总是正确的。 这取决于您的应用程序。 使用此模式,简单的应用会很好。 如果您的应用程序规模更大,我认为是时候转向另一种设计模式,例如MVVM(Model-View-ViewModel)或VIPER(View-Interactor-Presenter-Entity-Router)。

在iOS模拟器中安装证书

在旧版本的Xcode中,只需简单地将SSL证书拖放到模拟器中并按照提示进行操作,直到安装完成,即可完成SSL证书的安装。 除了将SSL证书拖放到模拟器之外,您还需要执行另一步。 常规->关于->证书信任设置->为特定证书“启用对根证书的完全信任”