Apiqa团队致力于特定住房领域的产品开发。 在叶卡捷琳堡找到经验丰富的开发人员并不容易-大型IT公司正在这里寻找他们,许多候选人都去了首都或离开了该国,而现阶段的远程合作并不适合我们。 我们在公司内部培养员工,与他们见面并努力提供舒适的工作条件。 因此,去年我们的一位Web开发人员决定尝试着手进行iOS编程。 我们帮助他顺利完成了这一过渡,现在他同时从事网络和移动开发。 现在,他准备好以第一人称分享他的故事了。 欢迎来到猫。
我是谁
哈Ha! 我是Apiqa的开发人员Sasha Kalinin。 我一直喜欢写网站,组装计算机以及了解复杂的技术知识,但是在父母的坚持下,我接受了经济教育,并开始在银行部门工作。

2015年,他开始学习编程,并在UrZPI(通用软件产品工厂)实习,之后与互动广告公司Everything Is Clear组成了合作伙伴,Apiqa出现了。 因此,我投入了Web开发领域。 去年,我想尝试一下iOS的广泛功能,因此该公司开始与我见面。
开始:Web编程
UrZPI从事以下网站的开发:“金苹果”,“住房和公用事业联盟”,珠宝品牌,美容院等。 我们做了一个大型项目“数字病理学”-一个研究癌症的平台。 除了主要工作,我还曾在两家在线学校(Loftschool和HTML Academy)担任导师。
2018年,俄罗斯最大的管理公司PIK Comfort成为Apiqa的主要客户,因此确定了专业化的方向,我们开始从事住房和公共服务领域的产品开发。

去年5月,我们对移动应用程序有需求,而本地开发人员也来到了公司。 到那时,我已经厌倦了网络,想在手机中尝试一下。 由于我是Apple的忠实粉丝,所以我决定为iOS写作。
沉浸在移动世界中
在第一天,我请iOS开发人员建议我从哪里开始。 事实证明,他反应灵敏,并在辅导的不同阶段扮演了我的导师的角色。 临近秋天,我开始读书:“迅捷。 Vasily Usov和“ Swift 3为iOS和macOS开发应用程序的基础”(第4版)。使用iOS SDK的iPhone和iPad的Xcode环境中的应用程序开发(第3版)Molly Mascri。 我读了六个月,完成了作业,同时写了一些东西,从导师那里收到了提高泵技术的应用想法。

我喜欢Swift-事实证明它非常简单,并且在编写网络时的语法类似于TypeScript。 Apple平台的开发工具更为复杂-自从Objective-C时代以来,已有很多遗留物,Objective-C是一种古老且不方便的系统API。 我吱吱作响地读了第二本书。
第一次拉取请求失败,并且我第一次想删除所有内容,但没有。 整个过程大约花了六个月的时间:现在我为Web和iOS写作。
我们分发当前任务。 我喜欢做一些不寻常的事,例如Web开发人员无法访问的东西,例如3D Touch,但是动画还不能接受,我没有设计感。 在Web上对界面进行动画处理当然更容易-代码更易于理解,没有复杂的麻烦。
移动开发和网络:有什么区别
在网络上,整个视觉效果是使用代码创建的。 您可以阅读并想象最终产品。 在Xcode中,这是面向iOS开发人员的IDE,其中提供了Interface Builder(接口生成器),该工具允许您通过使用光标拖动光标来使用图形界面进行排版-即,您无需为可视部分编写代码。

听起来很酷,但工作起来非常不稳定-可能是越野车,然后冻结,然后断裂。 有时,本机代码和Interface Builder之间会发生冲突-控制台中会出现很多错误,应用程序本身可能会崩溃,一切都可能陷入困境。
选择什么:网络还是移动?
决定权由您决定。 您需要了解它们的市场情况根本不同。 网络是一个免费平台,手机立法机构是拥有iOS和Android的公司-他们决定在哪里开发,开发人员应该使用哪些工具。 在为网络编程时,可以使用不同的框架,用不同的语言编写,使用不同的IDE,而对于iOS,只有Swift,Cocoa和Xcode。 如果Xcode推出了一些新功能,则对所有开发人员都将出现,但如果没有,则为否。 Apple的这种限制在编写代码时提供了顺序,但是您必须在网络上自行设置此顺序。
我还可以为Web加上大量不适用于iOS的开源解决方案。 当我开始编写移动应用程序时,我正在寻找与网络类似的工具,这些工具可以使某些事情实现自动化,但是在这里,我必须亲手编写。
反过来,再加上原生的iOS开发,Apple在实现功能方面提供了更大的自由度,包括Face ID,iCloud,存储等。 您可以轻松访问自定义硬件。 在浏览器中,您受此浏览器所允许的限制。
进一步的方法
我在网络上的潜在发展是研究日常工作中需求不大的事物。 在iOS中,我仍然有很多问题,在哪里可以发展,成长和学习。 在日常生活和工作的框架内实际应用技能的可能性让我着迷:您需要为手机编写一些东西-我会编写它,对于Mac则需要它-我会折磨自己,整理一下并为手表和Apple TV编写。 我已经想写玩具,但后来我意识到这是一个单独的复杂方向,要沉浸其中需要花费太多时间。 我还没准备好呢。
现在,我更加致力于iOS的开发,但是随时都可以回来。 我会经常进行网络更新,获取发行说明,并了解所有进展。 在移动平台上,更新实际上每年一次。
在宣布SwiftUI和新版本的OS之后,我想立即与他们联系。 我安装了Beta版...并杀死了手表-它变成了一块砖头。 为了使它们再次工作,我还必须将手机升级到iOS的原始,错误的Beta版本。
总的来说,我喜欢SwiftUI的方法远胜于我们现在正在使用的方法-自动布局。 SwiftUI简单明了,您编写代码并立即查看所获得的内容。 实际上,它类似于Web:编写代码,所有内容立即显示在浏览器中,不需要任何长时间的编译和应用程序的不断汇编。

结果如何?
我不后悔以这种方式来到这里。 如果您想重复我的经验,请评估您的公司技能和能力。 Apiqa的同事来找我,但事实并非如此,因此开始进行这种过渡之前,请与管理层讨论。
重要的是要在移动环境中投入足够的时间并在战斗环境中应用新知识-创建一个简单的应用程序并不能提供完整的图片,只有在存在无法放弃的任务时才能获得宝贵的经验。
如果您根本不熟悉编程,请记住,在网上输入栏较低,有更多可用的俄语教育资源。 就编写代码而言,iOS很难掌握-在这里,您需要考虑作为程序员,要具备足够的基础知识。
任何为自己设定任务的人都可以成为Web或Android开发人员-您只需要查找信息,对其进行研究并获得经验。 但是要致力于iOS,至少必须拥有Mac。