Tag: 应用

暴风雨前的平静

好一个星期。 Canvas的截止日期早在春假之前就困扰着我们。 现在是时候了。 Quatro团队有很多思考(和反思)。 一个问题引出了数十个问题,我们发现自己陷入了困境。 本周,我们的首要任务是尽一切可能使Best By进入App Store。 我们已经被拒绝过一次,因此我们一直专注于尝试修复错误。 借助TestFlight上的Best By,我们能够理解为什么我们会遭到最初的拒绝。 在操作和功能方面存在明显的UI / UX问题。 跨学科工作在两端继续进行。 本周早些时候,新闻专业的学生在Firebase上站了起来,并添加了食品。 现在,我们的团队正在考虑将原始到期信息再增加几天。 在我们的调查中,大多数人说他们更喜欢较少的通知。 您是否想收到一条通知,说您的鸡在购买后一天就要到期? 可能不会。 它会很快变质吗? 再一次,可能不是。 测试Best By帮助我们认识到“食物”页面有多空白,因此我们集思广益地重新设计它。 屏幕有两个主要问题:1)屏幕上没有任何内容;(2)难以浏览。 结果,我们添加了一个文本框,将用户指向正确的方向。 计算机科学专业的学生一直在研究整体设计和布局,以查看将给潜在用户带来最无缝体验的内容。 他们首先注意到,在通知用户方面,食物数据库需要更加真实,并且需要重新设计食物页面。 到目前为止,计算机科学专业的学生已经投入了50多个小时的编码,以使Best By更好。 他们肯定是士兵! 这周确实涉及次要细节,以及它们如何影响考虑下载并积极使用我们的应用程序的人。 现在是时候开始邀请其他人测试Best By,我们创建了一个Facebook页面,以便我们找到志愿者。 本周发生了重大变化,而且情况有所好转。 放弃我们以前的配色方案时,有很多想法,因为它与食品发生冲突-每个单独的食物都是不同的颜色。 这就是为什么我们将所有屏幕背景都更改为白色。 它使Best By看起来更干净,更美观。 我们还将徽标更改为深绿色。 很高兴看到我们的劳动成果(之所以得到它,是因为食物)聚集在一起。 @Apple帮助一些学生及其成绩!

开发移动应用程序前要记住的十件事

您是否打算启动可能改变未来的新启动想法,并且正在开发应用程序? 或者您打算启动您的业务应用程序? 好吧,那么在实际选择澳大利亚的任何移动应用程序开发公司之前,您应该牢记以下十件事。 1.功能列表 这是一个非常重要的考虑因素,因为项目的成本将取决于您选择的功能。 移动开发公司将根据工时向您收费,而工时又取决于您要包含在应用内的功能。 您需要在功能上更加精确,不要做任何假设,记录每一个小事情(这似乎很明显),从长远来看肯定会很方便。 2.确定工作范围 工作范围明确说明了开发公司将要完成的工作。 这听起来类似于“功能列表”,但相信我,不是,工作范围将定义诸如iOS,Android,Windows之类的平台及其将支持的兼容操作系统的详细信息。 此外,非常清楚地定义超出范围的功能,因此您可以在同一页面上。 很少有诸如服务器成本,SSL成本,域名成本之类的事情被视为超出范围的功能。 3.项目开发方法 如果这太技术性,请不要强调,我会尽量保持外行语言。 因此,每个应用程序都将经历也称为SDLC的软件开发生命周期。 它们分为以下几类: 瀑布模型(一切都会首先开发,测试并交付。因此您将在一段时间结束时获得最终产品) 敏捷开发(在每个Sprint的末尾都有小型产品,您可以根据需要查看和设置优先级。) 如果您不确定功能列表中的内容,或者您​​想快速启动产品并快速添加新功能,我强烈建议您使用敏捷开发方法。 4.设计与线框 许多公司不遵循线框图,我强烈建议开发线框图,这是您最需要参与的阶段。 这是您需要反复往返的阶段,但在此阶段中,您将能够可视化您的产品,并且会弹出更多的想法。 线框后跟设计,您需要弄清楚产品的配色方案,这是UI(用户界面)和UX(用户体验)出现的地方。 如果您期望从发布的第一周开始会有大量用户,我建议您将经验丰富的UX设计师加入该项目,因为这是用户根据他们在该应用程序上的经验会留下令人敬畏的反馈和最差的反馈的部分。 使事情尽可能简单。 5.测试 这是大多数人挣扎和最生气的部分。 一定要请开发公司准备测试用例并首先进行自我测试。 另外,如果您的时间可用性至关重要,我建议您提高质量检查人员的质量,以确保您的应用符合标准要求。 否则,您最终会收到错误的反馈,最终会因为缺乏测试而使用户崩溃,使应用程序崩溃并导致糟糕的用户体验。 6.可扩展性 这又是最关键的部分,想像一下您的应用程序在市场上的销售情况良好,并排在App Store和Play商店的排行榜上(声音确实很棒),比起您想获得用户反馈或想要添加更多功能的情况到应用程序,您意识到现有应用程序不可扩展,需要进行重新开发才能满足要求。那么,即使您进行了重新开发,您是否认为在重新开发应用程序时不会吸引任何竞争对手? 想象一下Orkut和Facebook场景。 您显然不想以Orkut结尾,没有人愿意。 因此,请确保将可伸缩性功能传达给您的应用开发公司。 获得1小时的免费应用开发咨询 7.服务器管理 如果您想知道服务器到底是什么? 我需要购买机器吗? 一点都不。 服务器是存储您的应用程序数据的地方。 那么服务器管理是什么? 好吧,您将需要99.99%的正常运行时间服务器,以确保您的应用大部分时间都可用。 随着用户数量的增加,您可能需要升级服务器以管理流量。 因此,这些事情属于服务器管理。 8.支持 您应该至少从应用程序开发公司那里获得3个月的免费支持,因为您将需要一些售后支持,因为在收到反馈时会有一些看不见的错误和问题需要您解决。 。 9.安全性 安全是任何应用程序的核心。 如果您了解当前的加密货币世界,那么就会有很多黑客入侵,造成大量金钱的损失。 了解应用安全性的敏感性和重要性。 很少需要注意的是SSL,2要素身份验证,加密和解密。 另外,我建议将AWS用作后端服务器。 […]

关于移动应用程序开发成本的另一篇文章

在互联网等平台上展示您的业务需要什么? 网站或移动应用程序,或两者兼而有之。 当前的市场趋势表明,在移动设备上运行的应用程序中提供服务是与客户进行交互的最简单方法。 在全球范围内,智能手机的便携性一直是大众使用智能手机和平板电脑的原因。 印度和全球的IT部门一直在为遇到此要求的小型企业提供此类服务。 多家供应商在IT市场中提供相同类型的服务,这使客户处于困境中,无法选择最佳交易来进行Web应用程序或移动应用程序开发。 随着移动性进入市场,移动应用程序开发是小型企业参与的关键功能。对于此类客户,选择合适的开发人员可以以可承受的成本提供应用程序开发及其功能。 加上可以在应用程序中可用功能方面提供透明开发成本的开发人员。 选择要添加到应用程序中的功能的灵活性也使客户可以选择应用程序的价格和投资。 客户所想到的基本思想是通用的应用程序,开发公司将指导并逐步引导客户使用可添加到应用程序中的各种功能,这可能会影响应用程序开发的最终成本和时间由开发人员用来开发产品。 开发移动应用程序的平均成本在$ 15,000到$ 1,00,000之间,具体取决于您选择的功能。 其中提供的功能尚不清楚,他们说它具有基本功能。 这些基本功能是什么? 想过吗? 它可以像推送通知,用户登录一样基本,或者仅在应用程序页面上显示内容。 所谓的基本功能可能在Web服务器的开头包含很小的存储空间,但是谁知道此可用存储何时耗尽,则可能需要在所有中间请求更多。 因此,在为您的企业的移动平台选择开发人员时做出正确的决定。 构建移动设备并投资相关成本取决于您为应用程序选择的平台。 主要有两个主要平台可用Android和iOS。 两个平台的成本相应地变化。 可能增加/减少预算的因素将是您要求开发人员开发的应用程序的类型。 开发包含大约成本的应用程序的基本类别如下: ·基本应用程序的成本为$ 15K-25K,具体取决于您可以向开发人员提供有关应用程序设计方面的投入。 ·涉及完整CMS,外部集成,聊天和购物车的应用程序可能要花费60,000 INR至1,000,000 INR,这是应用程序开发中最昂贵的类别。 尽管如此,您仍可以减少雇用自己的专门UI开发团队的成本,该团队专门在应用程序的设计部分工作。 最后,涉及年度费用的是应用程序的维护和支持。 由于必须定期更新应用程序,因此随着时间的推移会出现一些小故障。 因此,您需要一个支持团队来帮助您发布应用程序的稳定更新。 应用程序开发分为前端开发和后端开发人员,您可以选择将工作划分给不同的参与者,但是对于一个可以为您提供完整软件包的供应商来说,这是非常好的。 最后,我建议使用此应用程序费用计算器来了解您的移动应用程序开发的指示性价格。 Bluelupin的自定义应用程序开发成本计算器 此工具可帮助您计算开发自定义移动应用的指示性费用 calc.mobilekonnect.com

跟踪您的iOS应用性能

这些是每个App Store分析师都应注意的5个最重要的指标 ,以跟踪其应用程序的运行情况。 如果我们检查上面的渠道,我们可以轻松地看到下降最多的地方。 这些是我们应该首先关注的领域,因为它们可以帮助我们最大程度地减少整体转化。 改进每个转换步骤本身就是一个另外的问题,但这是每个步骤的快速入门: 印象太少? 尝试通过Twitter,Facebook,Reddit等不同渠道进一步推广您的应用。 要增加页面浏览量,您的标题和第一张屏幕截图(请记住:视频效果更好!)至关重要。 单元下载非常难于改进,因为某些用户只是浏览而不打算首先下载。 提供良好的视觉效果和清晰的“为用户提供的内容”说明会有所帮助。 在下载阶段之后,一切都与应用程序的“粘性”有关。 将移动仪表板与数据框集成 既然我们已经建立了一套衡量标准并明确了衡量成功的目标,那么保持持久性并始终了解您的应用如何响应引入的更改就很重要。 输入数据框。 Databox与Apple的iTunes Connect门户提供了现成的集成,您可以在其中了解有关应用程序性能的所有信息,以进行评估。 初始模板具备上述所有指标以及其他一些基本要素,因此不需要您进行最终的分析工作即可快速启动并运行。 但是,必须指出的是,您可以根据需要自定义模板(不同的可视化效果,时间间隔,指标等),因为我们会提取官方iTunes Connect门户上的所有可用信息。 如果您想亲自体验一下它,这是一个很好的起点,可以帮助您入门并使用Databox。 不要忘记,在构建应用程序时,您不仅需要考虑iOS用户。 Android是一个巨大的平台,为了真正能够成长, 必须同时支持这两个平台。 不过不要汗,因为Databox也在那儿。 我们还提供了Google Play开发者控制台集成,可提供跟踪Android应用程序运行状况所需的一切。 这是Databox真正发挥作用的地方-每个指标只需滑动几下即可。 通过比较两个平台,您可以真正了解正在发生的事情以及需要重点关注的地方。 使用 Databox Designer ,您可以组合不同的指标来查看整个应用程序业务的状况。 我们始终以移动为先,但除了确保您的数据随身携带外,所有这些指标都可以轻松地通过大电视屏幕,Apple Watch甚至在您的Slack频道中传递到您的办公室。 如果您在一家公司工作并希望成为真正的数据驱动者,那么轻松访问关键指标是必要的起点。 如果您找到使数据访问民主化并共享相关业务见解的方法,则可以使组织中的每个人都有能力以数据为依据进行决策,从而更具成本效益。 下次计划启动移动应用程序时,请考虑一下您希望转化渠道的外观。 使用正确的方法,您可以尽早避免很多问题! 有了一组正确的指标和一个仅需清除数据即可采取行动的工具,您的下一个发行版将更好! 如果您有任何疑问或想与我们分享您的反馈,请随时使用下面的“评论”部分或向我们发送@DataboxHQ的推文。

WebCollector的4年内首次更新

WebCollector是一个可以在iOS上拍摄网页完整屏幕截图的应用程序。 当前总下载量为29.4万个单位。 我收到了用户的电子邮件。 我无法在iOS 11上使用WebCollector。请更新… 因此,我决定通过接收此电子邮件来续订。 仅支持32位设备 太多的旧图书馆 所有代码均由Objective-C编写 火力基地 我决定将Firebase用作后端系统。 数据库是Firestore ,联系人是Cloud Functions , Firebase存储上的图像。 RxSwift 我使用UIStackView制作了一个工具栏,因此可以将RxWebKit的isHidden属性绑定。 代码是这样的。 webView.rx.canGoBack.map {!$ 0} .bind(发送至:topToolbar.backButton.rx.isHidden).disposed(发送方:disposeBag) webView.rx.canGoForward.map {!$ 0} .bind(发送至:topToolbar.forwardButton.rx.isHidden).disposed(发送方:disposeBag) webView.rx.loading.bind(发送至:topToolbar.reloadButton.rx.isHidden).disposed(发送方:disposeBag) webView.rx.loading.map {!$ 0} .bind(发送至:topToolbar.stopButton.rx.isHidden)。disposed(发送方:disposeBag) 。 。 。 我做了这样的扩展,然后我就可以轻松截图了。 XCTestCase扩展名{ func屏幕截图(_命名为:字符串){ XCTContext.runActivity(named:named,block:{活动在 让屏幕截图= XCUIScreen.main.screenshot() 让附件= XCTAttachment(屏幕截图:屏幕截图) attachment.lifetime = .keepAlways activity.add(附件) }) } } 我将午餐与UITest一起使用,因此可以使用视图名称启动ViewController目录。 导入XCTest 导入LunchTest 最后一个类OtherViewControllerTest:XCTestCase,ViewControllerTestable { […]

用户评分的重要性-您可以采取哪些措施

在使用新的评分引擎后,我们在短短一周内又获得了1781条新评论,平均评分为5星! 拥有智能手机的任何人都可以证明,越来越多的应用程序在争夺用户的注意力。 打开您选择的平台的店面,无论您要寻找的是什么,您都会面对各种各样的选择。 为了帮助客户找到最好的应用程序,平台所有者在商店中突出显示用户的评价,这引入了一系列额外的注意事项。 从表面上看,五星级评级系统对用户而言既好又简单,但是这种明显的简单性是一大罐蠕虫上的闪亮盖子。 评级和评论不仅几乎是所有新用户在是否下载您的应用程序时都必须继续进行的工作,而且当前用户可能还会认为,他们是与您联系以消除沮丧的唯一途径。 这种挫败感可能与应用程序本身直接相关,或者可能反映出更广泛的问题-因此需要记住的是,五星级评定代表的不只是其声称的范围。 尽管如此,用户评分是推动新下载量的重要因素,因此对于交付本机移动应用程序的任何人来说,它都是要考虑的关键因素。 用户评论有多重要? 尽管很难准确地量化用户评级对应用程序成功的重要性-还有很多其他变量需要考虑-这无疑是至关重要的方面。 这样做的原因之一是,较高评价的应用程序在搜索结果中占有更大的优势。 如果现有用户喜欢您的应用程序,那么其他人最有可能首先找到您的应用程序。 当他们这样做时,如果看到您的应用程序名称中有大量的星星,他们更有可能点击下载按钮。 当然,还有一个缺点要考虑-如果您的应用程序评级不佳,则可能会推迟潜在用户试用,而您确实拥有的用户显然不满意。 这使您的企业声誉受到威胁; 谁希望看到别人给人们带来糟糕的经历,并因此公开露面? 因此,无论您是提供用户已经喜欢的体验,还是希望提高星级,都需要投资以提高您的评分。 请更多星星 好消息是,从某种意义上说,提高评级是直接的-您应该证明自己正在听取用户的反馈,并努力解决客户遇到的问题。 为此,您需要确定收到的宝贵反馈的优先级(免费!)。 虽然这听起来像是常识,但出于技术或业务原因,采取评论行动可能并不总是那么简单(或建议)。 即使不是这种情况,根据用户反馈采取行动也需要您的交付团队保持灵活性; 计划好的开发路线图可能需要更改,以使团队能够专注于更紧迫的问题(就您的用户而言)。 人们在聆听时会感觉良好,并且很明显,应用程序的另一端是人,考虑到他们的需求,他们的评论可能会更加周到和积极。 虽然您无法响应个人反馈,但是可以使用更新随附的发行说明来强调您正在收听的事实。 一些最成功的应用程序利用此机会与用户建立和发展对话关系。 记住,你无法控制一切 正如我们上面提到的,许多因素都会影响您应用的评级。 其中有些由您控制,有些则不在您控制; 要记住的一件事是,人们的评论不仅会因他们对您的应用程序的即时体验而有色,而且还会因他们对组织的看法而变色。 但是,专注于您所控制的事物可以使您的事务堆积如山,并导致用户评级显着提高。 在过去的三年中,我们一直在积极为其中一位客户开发应用程序,该应用程序现在在App Store和Google Play商店中均获得5星评级。 我们使用了多种技术将应用推入积极的领域。 在iOS上,我们删除了库存的iRate插件以支持我们自己的解决方案。 标准模块已为我们赢得了将近5000条评论和4星评级,但我们对其进行了更改,目的是简化一些事情,从而使我们有了更多的控制权。 例如,我们仅在用户完成了内在奖励后才向用户显示评分提示。 在您确信用户的心情良好时要求评分,这可能会获得更多积极的回应(例如,在健身应用中,您可以询问他们何时设定了新的个人最佳成绩)。 我们还要求用户给我们五颗星(当然是礼貌的),而不是要求他们给应用评分。 语言上的细微变化,但是却是有益的-社会工程学的这一点帮助我们实现了真正的改变。 在使用新的评分引擎后,我们在短短一周内又获得了1781条新评论,平均评分为5星。 在撰写本文时,我们现在已有超过34,000条评论-该应用程序的整体评价仍为5星。 有了这个新的评分系统,并且用户显然对应用程序有积极的态度,我们要做的最后一件事就是让他们烦恼。 因此,开发团队还创建了一种算法,该算法可以监视我们要求用户对体验进行评分的方式和时间,以确保没有用户感觉自己像被困住了(造成负面情绪的常见原因)。 积极一点 在拥挤的市场中,强大的用户评分是应用成功的关键因素-因此从一开始就必须认真对待它。 开发应用程序就像任何其他不断发展的迭代软件一样,只是反馈特别公开,并且可能造成破坏。 在进行项目计划时,我们建议您考虑分配一定比例的时间来解决反馈问题。 更积极的一点是,通过证明您正在听取观众的意见,并仔细考虑在适当的时候在何时何地鼓励评论,您可以在改善用户对应用程序以及业务的感觉方面取得长足的进步。

VIPER🐍iOS的架构演进

很久以前,我们的iOS团队决定尝试VIPER体系结构模式。 周围的模式有很多变化。 随着时间的流逝,我们有各种各样的用例,而经典的VIPER架构(请参见下文)无法提供标准化的解决方案。 因此,我们根据需要修改了架构模式。 现在,我想分享我们的学习和改进。 对于那些不了解VIPER架构模式的人来说,这是一个简单的示例:假设您要显示应用程序中的项目列表。 通常,您只会创建一个包含该UIView的UIViewController 。 用VIPER方式进行操作意味着您将创建5个组件,这些组件全部由其负责。 视图:我想你们都知道这个组件是什么。 大多数时候,它是一个UIViewController ,有时只是一个UIView 。 它向用户显示UI元素。 演示者:他负责从Interactor中获取数据,从该数据创建视图模型以及更新View。 此外,他告诉路由器导航到另一个视图或显示另一个视图 。 Interactor: Interactor处理业务逻辑,例如从API或本地数据库中获取数据。 路由器:如前所述,他负责导航,这可能意味着显示模态视图控制器或将视图控制器推入导航堆栈。 线框:他连接了上述所有组件,并返回了准备使用的View 。 在下文中,我将使用VIPER堆栈作为上述所有组件的别名。 started我们开始的VIPER架构变体 看看我们开始的VIPER Architecture变体。

在Swift中重写应用程序,第2部分

大家好,欢迎来到本系列文章的第二部分,我将向您展示如何在Swift上重写Todo Rugby。 在第一部分中,我向您展示了如何使用Drawer,Tab和NavigationManager以编程方式构建骨架。 在这一节中,我将介绍以下几点: 联网:使用Moya编写服务层,以及全新的Codable协议,这是Swift 4的一个很酷的功能。 基类:为什么要考虑使用它们。 平等:如何以Swift方式实现旧的isEqual 。 guard let :您的所有可选问题的战刀。 莫亚 网络层是处理API数据的任何应用程序中非常重要的一部分。 阅读并研究了可用的最佳工具和Pod之后,我介绍了Moya,这是一个网络抽象层,其内部使用Alamofire(Swift AFNetworking的继承者)。 该框架的有趣之处之一是,您不必在每次启动新应用时都重写新的网络客户端。 它在内部处理。 您必须指定的唯一内容是: 枚举:您的所有请求都将在枚举中定义,包括其参数和其他数据。 基本网址:用于访问您的API的网址。 端点:对于每个新的枚举,您必须告诉他们哪个是该枚举的关联端点,以及它应如何处理该端点上的参数。 方法:应该为每个枚举值( .get , .post等)使用的HTTP动词。 任务:请求应为纯请求还是具有其他数据(查询字符串参数,表单数据,多部分等)。 标头:您应为每个端点使用哪些标头。 样本数据:是的,因此,如果您提供端点,则可以模拟端点。 在使用“抽屉”和“选项卡”设置导航之前,我一直喜欢做的事情是控制更新,以及是否应强制执行该更新。 也就是说,如果用户仍然可以使用与更新有关的应用程序,或者唯一的使用方式是通过更新来使用它。 我没有介绍如何编写您的强制更新逻辑,但是我要介绍的第一个端点是version 1。 在实现符合TargetType协议的Service枚举后,您应该具有以下内容: 有关JSONDecoder类如何处理结构及其键的更多信息,请从第24分钟开始观看此视频。 继承是OOP的强大工具,您应该始终尝试利用它。 在iOS(在本例中为Swift)上,我喜欢以下基类: BaseViewController 它继承自UIViewController并具有方便的方法来处理NavBar设置,屏幕跟踪以及更多其他功能。 BaseTableViewCell 可以想象,它继承自UITableViewCell并具有非常有用的方法。 它还具有一个model属性,该属性是实现Decodable协议的结构。 看起来像这样: 可能您从未实现过isEqual方法。 我认为其原因之一是因为它花费了大量代码: isEqualToTournament是一个方便的方法,例如isEqualToString或isEqualToNumber ,因为知道接收者来自同一类,所以您可能会使用此方法。 但是,如果要对列表进行排序或使用在isEqual使用isEqual集合进行操作,则必须实现它。 使用Swift,我们有一个了不起的功能,称为运算符重载(如果您使用C ++编写代码,您可能知道我在说什么)。 基本上,您可以覆盖运算符以对对象执行自定义操作。 在这种情况下,我们将覆盖==运算符,以便可以使用它检查两个对象是否相等: 惊人! 现在,每次您在两个锦标赛之间编写==比较时,它将使用此运算符并在内部检查其ID。 我要在这篇文章上谈论的最后一件事是关于尽早返回的一种编码样式,该样式检查并返回无效的情况,并使您专注于实际上将在您的方法上执行的代码。 […]

自行车之路:我在App Store中的第一个应用程序

大约七个月后,Cycles取得了令人难以置信的成功: 在顶级生产力应用程序中,周期已达到第3位。 循环已被许多站点(例如Mashable和 AppAdvice) 使用和审查 。 周期已从App Store下载32,000多次,并且仍在增长。 是的,没错,我每天都在不断地研究自行车。 虽然我确实认为该应用程序具有巨大的初始启动能力,但始终存在改进的空间。 得出我最后的建议: 您的应用程序永远不会感到完成,那就可以了! 您为此花费了很多时间和精力,因为您对此充满热情。 我想花时间说谢谢您阅读本文,希望我以一种或多种方式为您提供帮助。 我很乐于回馈社区,因此,如果您有任何疑问,疑虑,反馈,或者只是想说声嘿,请随时通过社交媒体(下面链接)与我联系。 我也喜欢Twitch上的流媒体! 我已经开始在Cycles和其他副项目上流式传输更新进度。 请随时出来打个招呼或询问任何开发问题。 看我流!

生活的东西:更新

哇 最近两个月一直是旋风。 我希望我可以说我一直处在一个狭窄的焦点通道中,干扰了像freakin-Robot先生这样的代码,但是不,我已经完全被生活所取代。 6月,我收拾了自己在俄勒冈州波特兰的生活,搬到阳光明媚的洛杉矶,与一些朋友,工作机会,温暖以及我可爱的女友Nina更加亲近。 七月花在从佛蒙特州一直延伸到哥伦比亚特区的东海岸小巷中,一路上看到家人和老朋友。 现在,定居在金州,我又回到了流程中,终于能够花时间再次为这样的个人开发项目降温。 这是我们离开的地方。 现在,大多数阅读此书的人都知道,我正在自学如何在公共场合构建应用程序。 该应用程序将使乘坐同一飞机旅行的人们能够相互交流,并有希望见到IRL。 这就是它的工作方式。 自上一篇文章以来,我已经完成了Udacity大约一半的免费在线课程,这些课程向人们教授Apple的iOS编程语言Swift的基础知识。 该课程非常有趣。 该平台具有巨大的潜力,一开始看起来很不错,但是实际功能有点笨拙(您怎么说)。 在大多数情况下,内容就在那里。 有些课程视频可以很轻松地指导您完成每节课。 有时候,我完全迷路了。 有些视频丢失了,我不得不在YouTube(所有的课程视频都在此托管)上进行挖掘,以找到丢失的课程。 另一个重大的失败之一,这不是Udacity的错,是没有活着的老师,当您陷入困境时,没有人可以帮助您。 您所拥有的只是视频讲师的声音和Google的重复。 在某些情况下,他们让我构建的练习应用程序出现了随机错误,并停止了工作。 我无法启动它或无法按预期的方式使用它,而且我也不知道自己做了什么使它变成狗屎。 因此,我不得不从头开始重建整个事情。 事实证明,这实际上是重复练习的好方法,但是却不是很多乐趣。 在亮的一边。 苹果公司专有的开发环境Xcode让我感到惊喜。 开发环境是一组软件,可模拟本地计算机上的实时应用程序(iOS应用程序,网站)。 它使您可以在将最终产品发布给全世界之前,在计算机上安全地编写和测试代码。 在Xcode中,用户界面几乎都是图形的。 它们具有代表应用程序所有部分的图像,这使查看应用程序不同部分之间的相互关系变得非常容易。 您也可以轻松地在内部进行浏览以查看和编辑基础代码。 这种设置使学习Swift就像观看带有外国字幕的英语电影一样。 在故事中浏览时,您可以直观地了解正在发生的事情,但是您始终可以窥视到如何将其翻译成与图像相对应的外语。 实际上,这是学习如何阅读该语言的好方法。 因此,我很享受使用Xcode的舒适感。 不必是这种方式。 我本可以放到一个黑色的终端屏幕中,而只有绿色字母垂直向下移动才能使用。 我很高兴不是那样。 接下来。 我期待着在接下来的几周内重新振作起来,并为您准备一份有关如何计划结束本项目的大量报告。 目前,我觉得我只是在测试水域,因此我们应该能够尽快制定出切实可行的计划。 感谢您的跟进! 直到下一次。