Tag: App Development

我如何在6个月内成功地从“ Swift”用户那里发布了应用

开始: 一切都始于我三年级时,我报名参加了Swift课程。 在此之前,我对计算机语言的了解很少,仅了解一点Python和C。 原因: 我报名参加该课程的唯一原因是我是Apple的忠实粉丝,我喜欢他们给我带来的舒适的产品,硬件和软件的高度兼容性,美观的外观等。 我只想靠近苹果。 从班级中学到: 众所周知,这些课程仅讨论基本内容,例如如何使用UITableView,UIView,UIButton等。 这意味着您发布应用程序还有很长的路要走。 是的,是的,等等,阿诺有什么意义? 那是您需要分享的重要内容吗? 您说的没那么重要,但是让我决定发布应用程序的主要原因是与讲师的谈话。 当时我很高兴通过这门课程,我只想感谢讲师带领我进入Swift的大门。 他告诉我:“当您最终看到您的应用程序出现在App Store中时,您所获得的快乐就是您无法购买的。” 坐下来开始编码: 第一步真的很重要,不要再担心可能的障碍,只需抓一把椅子,倒一杯咖啡,坐下来开始编码。 大多数人都停留在第一步中,没有什么可担心的,只是随便打滚就可以了。 您会惊讶于开始编码后出现了多少个想法。 解决问题: 编写应用程序的方法并不总是一帆风顺,但最重要的是不要轻易放弃。 遇到问题时,请尝试调查没有该代码的网站:堆栈溢出 , 您的大部分问题都可以在那儿解决,或者从椅子上坐下来休息一下,做些编码以外的事情,无法说出原因,但是在我的情况下,当我洗个澡或在街上走路时,解决方案常常就出来了。 尝试: 有勇气尝试新事物。 以我自己为例,我从未学习过任何计算机绘图程序,因此在应用程序图标设计方面,这对我来说是巨大的痛苦。 那时,我只有三种选择。 1.雇用某人为我绘图。2.问一个了解计算机绘图的朋友。3.自己绘图。 我之所以选择第三项,是因为这是我将学到最多的唯一方法。 你真的相信那头牛吗? 当然不是,因为聘用某人来画画的价格不是我负担得起的,我是一个孤独的人。 所以我必须自己做,但这实际上是这三个中最好的选择,因为现在我学会了如何使用Sketch,而且我确定我会在以后的开发中使用它。 任何方式只要记住要面对障碍,不要害怕尝试新事物,那是改进的唯一捷径。 发行后: 我的App被Apple批准后,每当我看到我的App出现在App Store中时,我就会被幸福的狂喜所支配。 讲师说的对,这确实是您买不到的东西。 即使检查App Store Connect中的下载计数也是一件有趣的事情。 结论: 总而言之,发布一个应用程序并不难,只要跳入该应用程序就可以了。 随便吧〜

如何编写踢屁股拉请求

适量亵渎的Git入门指南 通过Akash Shah 对于新手开发人员(至少,那些想与其他人一起从事项目工作的人),编写提交和请求请求是必不可少的。 如果有效完成,它们最终将节省时间和精力,不仅对您有利,对您团队中的其他开发人员,项目经理和客户也是如此。 在进入美好的提交和拉取请求世界之前,退后一步来了解应用程序实际上是有帮助的 。 无需再费周折: 应用程序是功能的集合,这些功能可以共同帮助用户实现目标,无论是寻找新的住宿地点,与朋友联系还是浪费时间。 功能虽然差异很大,但具有一些特征: 每个功能都有一个单独的功能。 每个功能可以独立运行,也可以相互依赖。 每个功能都包括帮助其接收信息,解析信息然后进行传递的代码。 在大多数情况下,该代码仍然是单独的,其他功能无法访问。 文档作者,我们可以快点了吗? 我想做个很烂的狗屎! –你 嘘,年轻的Padewan。 我们到了那里。 现在,为什么我们要经历有关功能的整个讨论? 好吧,无论何时使用新功能或修复现有功能,都可以创建一个单独的分支,并将相关代码提交到该分支。 完成后,您将提交拉取请求 。 注意不要在一个分支中使用多个功能或修复。 提交 开发功能时,无需从一开始就构建其最终迭代。 您逐步构建它。 您可以从简单地激活功能开始,然后提供信息,依此类推,直到功能完成。 但是,您如何决定提交什么和何时提交? 这很简单。 提交步骤! 提交这些步骤可以使不熟悉您的代码的人轻松了解您的操作以及操作方式。 您可以做一些其他的事情来使您的提交变得更好: 说明 应该用一句话形容您的所作所为。 如果您需要更多,也许您应该拆分提交。 摘要应该描述提交的目标。 你想做什么? 将数据转换成字符串? 重构什么? 修复您之前弄糟的东西? (嘿,狗屎发生了。我没有判断!) 不要害怕经常犯错! 您做得越多,您就会学到更多。 确保您没有对Master做出任何承诺,除非您的项目负责人给予了此荣誉。 温馨提示:除非您喜欢使项目负责人的头部爆炸,否则请尽量不要使用空格。 哇,文档作者,您刚刚在使用gif时获得了一些严肃的信誉! –你 谢谢读者。 我努力 现在开始请求。 拉取请求 拉取请求用于准备好审查代码的情况。 如果一切正常,您的项目负责人会将其合并到Master Branch中 […]

如何在3天内开发整个应用程序。

有时,您只需使其简单即可。 首先让我讲一个有关我如何产生这个想法的故事。 在品格,方式,风格,所有方面,至高无上的就是简单。 —亨利·沃兹沃思·朗费罗 我有几个项目都很庞大,我们在这些项目上工作了好几个月。 距离我们终于可以启动这些应用程序项目还有几个月。 这可能会让人筋疲力尽,尤其是当进度真的很慢时。 不要误会我的意思,我喜欢编码,并且很高兴能成为这些项目的一部分。 但是,仍然有时间将一些东西放在那里! 我观看了Gary Vaynerchuk先生录制的视频,他在视频中谈到了说唱歌手和音乐。 他说,如果他会成为一名说唱歌手,他只会每天或隔天放一首歌。 那么,为什么不在“应用程序开发”区域中这样做呢? 我开始考虑自己会用和需要的一些应用程序。 当我和我的朋友去体育馆时,我们总是将自己的场景和代表写下一本小书,那为什么不为此制作一个简单的应用程序呢? 我知道有很多应用程序可以跟踪您的锻炼情况,但是它们总是给您留下很少的空间来写一些笔记。 (如果您认识一个好人,请在Instagram上给我dm) 然后,我才开始进行一些设计 ,目的是使它们尽可能干净和简单。 结果如下: 现在,我必须编写此应用程序的代码。 这个程序有两个控制器。 在第一个控制器中,您可以查看所有锻炼的确切日期。 当您按下一个控制器时,您可以看到在该锻炼中完成的所有锻炼。 另外,您可以在每个练习中添加一些注释。 我花了一天的时间在应用程序中实现设计,而花了一天的时间来了解其背后的逻辑。 此应用程序将所有数据存储在核心数据中,因此它们会永久存储在您的手机上。 您可以将它们保存在服务器上,但我只是想看看是否有人在使用该应用程序。 以后我仍然可以添加此功能。 由于我没有徽标的设计师 ,所以我在几分钟内就使用Adobe Experience Design创建了这个简单的App Icon。 受说唱歌手鲁斯专辑封面的启发,我刚刚制作了这个简单的徽标。 然后,我必须与真实用户一起测试该应用程序。 我将其上传到Apple的测试服务Testflight,并将其发布在我的Instagram故事中。 一些人回答说他们想测试它,并给了我一些很好的反馈。 我必须在几分钟内修复一个错误,因此您可以将其视为4天的开发。 然后,我只是在我的Instagram帐户上进行了一些简单的促销,以吸引一些人使用它。 它现在在App Store上是免费的,请随时下载并尝试🙂 我从中学到了什么? 简单一点就可以了! 感谢您阅读本文! 你可以在这里和我说话-> Instagram

Octobot的起源

GitHub是世界上最大的软件协作平台之一,拥有超过2500万注册用户。 自2007年成立以来,它已成为全球软件开发人员的重要服务。 尽管git本身是分布式SCM,但是GitHub提出的工具是任何程序员工具集的宝贵补充。 多年来,由于无处不在,它也已成为开源软件的基石。 从开源托管到问题跟踪,构建Wiki甚至访问GitHub Page,很多人都依赖该服务全天候可用。 作为其中的一员,我着手创建一个简单的移动应用程序和服务来密切监视GitHub的状态,并通知我任何更改。 Octobot的概念诞生了。 我的代号为“ Jester”,于2014年底向Louis-Andre Labadie提出了这个想法,他以设计师兼一般网络人员的身份加入了该项目。 他还负责创建Octobot作为吉祥物! 最初的版本放在一起,然后在2015年春季发布。该第一个版本方便地使用Parse.com作为其后端服务。 这不是很理想,但它确实完成了工作,并允许我立即发布Octobot。 在该应用发布前几周,GitHub成为该站点历史上最大的DDoS的目标。 这次不幸的事件在社区造成了很大的混乱。 在GitHub和其他地方学到了教训。 尽管如此,Octobot还是在这里使用户随时了解任何可怕的情况。 去得到Octobot! 它在App Store上免费 。

#iOS #App开发的5大IDE工具

集成开发环境(IDE)是一个软件应用程序,可促进Android和iOS应用程序的开发。 它是一个图形用户界面,可帮助开发人员在集成环境和工具中构建软件应用程序。 IDE具有版本控制,调试和结构浏览的最常用功能。 苹果公司开发了最受欢迎的iOS移动操作系统,可在iPod,iPhone,iPad和TvOS等数百万的iOS设备上使用。Swift编程是高端平台,为编写高质量代码和构建创新的iOS提供了巨大的可能性。应用。 这是向iOS应用程序开发人员介绍的新的现代化编程语言。 Swift鼓励使用基于iOS的应用程序开发移动应用程序。 现代化的IDE提供了简洁,精简的语法,可最大程度地减少键入。 Swift可以最小化不安全的代码并在运行代码之前捕获错误。 它使用LLVM编译器生成最佳代码。 探索适用于iOS应用程序开发的5种最佳IDE: Xcode 8是用于iOS应用程序开发的最佳IDE之一,具有自动完成功能和Swift的完整语法突出显示功能。 它与Cocoa Touch框架集成在一起。 它具有一个助手按钮,可将编辑者分为主要工作文档和助手编辑者。 IDE具有集成的界面生成器,可轻松对完整的UI进行原型制作而无需定义任何代码。 Xcode 8包括您希望为iPhone,iPad,Mac,Apple Watch和Apple TV制作出色应用程序的所有内容。 它是IDE的更快版本,具有新的编辑器扩展,您可以使用它们来完全自定义您的编码体验。 Appcode是JetBrains用于macOS和iOS开发的智能IDE。 它通过智能开发环境确保快速执行代码。 它负责日常例行任务,并节省了额外的代码输入。 它可以通过准确,安全的重构随时修改和改进代码。 它提供了项目导航,您可以在其中立即移动到项目中的任何文件,类或图像,使用层次结构和结构视图来引导项目结构。 Appcode具有2种不同的代码完成形式,包括其他高级SmartType完成和您键入的基本完成。 它联合执行C ++,C和Objective C的60个代码检查,包括许多其他代码检查。 阅读更多:用于iOS App开发的前5个IDE工具

认识团队:Francesco Deliro,移动第一工程师

当我购买第一台笔记本电脑时,一切就开始了。 每次遇到问题时,我都想自己修复,直到解决问题后才离开办公桌。 我参加了不同的编程课程,并阅读了很多文章。 在对编程充满热情之后,我决定以谋生为生。 我作为iOS开发人员已经3年了,我相信这只是一次激动人心的冒险的开始。 无论是舒适的环境还是友善的人们,We Are Mobile First办公室都是我喜欢工作的地方,他们和我一样拥有同样的热情,也富有挑战性。 宜人的天气,美味的食物,多元文化的环境和海滩使巴塞罗那成为理想的居住场所。 它既不会太大也不会太小。 您在这里不会感到无聊。 在寒冷的几个月里,我喜欢写故事和阅读。 在温暖的季节,我喜欢在海滩上度过时间或做运动。 我也喜欢旅行和与家人共度时光。 阅读更多我们的博客文章:www.wearemobilefirst.com

框架如何在macOS上工作

即使约束几乎是在macOS / iOS和tvOS上构建UI的默认设置,在某些情况下,框架仍是首选。 macOS上的帧操作与其对应的帧操作非常相似。 与CGRect一起使用时,您会看到对NSRect的引用,但实际上这只是CGRect的类型别名。 但是,存在一个根本区别,就是坐标系被翻转,或者更确切地说,它在iOS和tvOS上被翻转。 这意味着值为零的x坐标始于其超级视图的底部,而不是其顶部。 值得注意的是,这只会影响x坐标,y坐标的工作方式与您期望的一样。 如果您习惯于在iOS和tvOS上计算帧,那么反过来做所有事情都会是一个挑战。 幸运的是,Apple为我们引入了一个属性,以便在我们想要翻转坐标系时覆盖它,以便x坐标或零表示子视图的顶部。 让我们快速看一下一个非常简单的NSView示例中的外观。 从图像中可以看到,子视图位于左下角。 仅需一行代码,我们就可以反转容器视图以获得所需的行为。 如您所见,我们仅添加了isFlipped的覆盖并将其设置为返回true 。 让我们看看文档中关于isFlipped属性的说法。 此属性的默认值为false,这将导致坐标系不翻转。 在非翻转坐标系中,原点位于视图的左下角,并且正y值向上延伸。 在翻转的坐标系中,原点位于视图的左上角,y值向下延伸。 X值始终向右延伸。 如果希望视图使用翻转的坐标系,请覆盖此属性并返回true。 https://developer.apple.com/documentation/appkit/nsview/1483532-isflipped 因此,通过覆盖该属性,该视图坐标系内的所有内容都将被翻转。 请确保注意,将其他子视图添加到基础子视图将不会继承此子视图,并且如果您还希望翻转那些子视图,则必须重写相同的方法。 为了说明我的意思,让我们看一个最后的例子。 就是这样,在macOS上进行基于帧的计算时,不再麻烦。

垂直分页无限制

大多数移动应用程序用户将滚动视为理所当然。 当他们不顾一切地使用指尖在Facebook,Instagram,Twitter,LinkedIn,Google报亭或许多其他应用程序上的新闻源中无休止地滚动时,他们不会停止思考精心构建的代码,以支持看似轻松的滚动。 实际上,创建无缝滚动动作需要进行大量工作,以提供定制的,简化的 用户体验 。 在Distillery,我们面临着一个艰巨的挑战,因此当我们意识到没有现成的解决方案可以支持 我们正在构建 的iOS Soapbox 应用 所需的滚动体验时,我们就准备好并愿意 。 这篇博客重述了我们如何应对挑战。 该文章由Distillery的开发商之一Nikolay Sohryakov撰写,于2016年12月首次发表在Distillery的博客上。 是否想了解我们更多的经验,为我们为初创企业和企业客户开发的应用和网站开发定制的高质量UX解决方案? 请查看我们的 特色应用程序开发工作 或有关 使用PubNub建立传达情感的交谈聊天, 为Roommates建立Circle , 使用SignalR加快客户端/服务器通信 , 为nēdl应用程序实现Alexa以及在应用程序中 使用Kotlin 的博客- 建设过程 。 适用于iOS的Soapbox应用程序提供了一种有趣,简单的方式来捕捉时刻,与世界分享时刻并帮助宣传事物和原因。 Soapbox也强调了通过社交渠道获利的能力。 您可以跟随您的朋友,发现来自世界各地的杰出创作者,他们分享您喜爱的惊人内容。 但是,在开发应用程序时,Distillery遇到了许多技术挑战,我们需要克服这些挑战才能使应用程序按预期的方式工作。 在本文中,我们将特别讨论一个挑战。 Soapbox是围绕新闻源构建的以内容为中心的应用程序。 但是,传统新闻提要实现的某些功能与我们希望用户拥有的体验不太吻合: 在Facebook之类的应用中实现的新闻源可提供连续的滚动体验,但是我们希望用户能够向上或向下滑动以直接捕捉到源中的下一个(或上一个)帖子。 我们希望一次只在屏幕上显示一个新闻提要帖子,即使该帖子未填充整个屏幕。 我们还希望帖子长度不限,因此帖子实际上可能会延伸到单个屏幕之外(并且您可以向下滚动以通过拖动查看更多内容)。 我们希望用户能够在帖子之间滑动,以便像卡片一样在帖子之间移动。 那么,问题是如何实现这些用户体验目标。 解决这些问题的第一个想法是使用UITableView并将isPagingEnabled设置为true 。 但这被证明不是可行的选择,因为UITableView要求页面大小相同。 我们在网上冲浪以寻找现成的解决方案,却一无所获-因此,我们决定构建自己的控件,该控件可以完全自定义并满足我们的所有需求。 该控件我们称为CardScrollView 。 因为我们希望Soapbox具有滚动内容提要,所以我们决定使用UIScrollView作为新控件的基础。 UIScrollView实际上实现了基础的滚动逻辑,并公开了控制滚动过程所需的所有API。 但是UIScrollView内部的内容呢? UITableView吸引人的一件事是它自己管理内存并在重用单元格方面做得很好。 那么我们如何为CardScrollView做到这一点呢? 我们回想起在2010年Apple全球开发者大会上进行的对话。 在那里,苹果工程师讨论了使用滚动视图设计应用程序。 本演讲的一个非常重要的部分介绍了如何通过对象池模式的实现重用 […]

打个招呼App Store

对我们来说,这也许是最重要的一周。 Best By正式在应用商店中! 但是,工作远未完成。 现在我们有了一个人们可以实际下载的应用程序,我们必须尽可能地完善该应用程序。 我们于4月1日星期日提交了应用商店。 那天晚上晚些时候,发现了一个错误,因此我们不得不重新提交,所以我们实际上提交了两次。 在星期一,我们必须看到其他团队正在创建的应用程序。 看到我们班上的每个人在他们的应用程序上的表现都很棒,这真是令人惊讶,并且成为其中的一员也令人兴奋。 我们收到了有关应用程序的反馈,称导航该应用程序有些复杂,因此我们决定需要研究应用程序的流程。 最好的方法是向人们展示该应用程序,并让他们在应用程序内执行某些任务,以了解完成所需步骤有多么快速和容易。 我们同意可用性方面存在问题,因此我们开始集思广益,思考改变按钮,页面和标签的方法。 这些按钮应该很明显,并且一眼就能暗示其功能。 在星期一,我们的计算机科学成员按照入职顺序进行工作,我们讨论了如何使用简单的图标正确显示按钮的功能。 同时,我们能够在Testflight上测试该应用程序,从而允许团队以外的人使用该应用程序并提供有价值的反馈。 当天下午晚些时候,我们的应用被批准用于应用商店。 在星期二,发现了一个破坏应用程序的错误,因此我们必须提交更新。 不利的一面是人们不得不手动对其进行更新。 在星期三,我们必须进行演示,并炫耀我们的应用程序以及上次冲刺期间的工作。 我们认为演示文稿进行得很好,并收到了大量积极的反馈。 很高兴听到教授和同行对您的应用程序的看法。 我们还必须参加一个有趣的小活动,班上的每个人都必须为另一个团队的应用程序做些简短的介绍。 有趣的是,看到有人能以多快的速度提出聪明的建议。 推销我们应用程序的人非常成功,因此我们至少知道每个人都了解我们应用程序的目标。 演讲之后,又回到了研讨。 我们在课堂上花了时间讨论应用程序的某些方面。 关于采取什么步骤使Best By变得更加用户友好的讨论很多。 该讨论在我们的Slack频道中进行了一整夜。 我们越来越接近使这个程序完美。 对于应用商店,我们需要提交图片以显示我们的应用页面示例,以便潜在用户可以在下载应用之前了解该应用的外观。 Jahnavi能够呈现一些非常好的图像。 对于每个页面,都有一个简短的说明,告诉您该页面是什么以及如何利用某些功能。 现在是时候让我们从应用商店中获取用户反馈,并让我们的应用与用户群一起成长。 除编码外,我们还将专注于使用社交媒体作为主要平台的营销。 查看我们的Twitter @bestbyapp和我们的Facebook页面https://www.facebook.com/bestbyapp/。

滚动视图如何在macOS上工作

如果您曾经开发过iOS应用程序,那么我猜您已经构建了一次或两次表视图或集合视图。 您可能还熟悉两个UI元素都具有的继承。 它们都继承自UIScrollView以获得滚动行为。 您可能已经猜到了,macOS并非如此。 要为用户增加滚动体验,您将必须实现NSScrollView 。 这不是一项艰巨的任务,但要使其顺畅运行,您必须了解NSScrollView的核心概念,或者更确切地说,是如何将iOS思维方式转换到macOS域。 如果您排除滚动视图本身,则NSScrollView由两部分组成: NSClipView和文档视图。 文档视图是您需要提供的唯一东西才能使它起作用。 由于苹果在提供所有活动部件如何组合方面做得非常出色,因此我不会赘述。 对于我们的示例,文档视图将是一个简单的NSView ,但它可能是表视图或集合视图。 https://developer.apple.com/library/content/documentation/Cocoa/Conceptual/NSScrollViewGuide/Articles/Basics.html 对于这些示例,我决定通过使它们易于在操场上使用来提高其档次,只需将代码复制到操场上即可,您应该可以随意修改代码。 我们要做的第一件事是设置要用作滚动视图的文档视图的自定义视图。 我们给它一个比滚动视图更突出的高度,以使其滚动。 文档视图的大小用作滚动视图的内容大小。 因此,如果要水平滚动,则文档视图应比滚动视图宽。 为了给游乐场提供一个很好的例子,我们在自定义视图中添加了渐变,以使滚动更加明显。 因为我们希望滚动视图的初始位置位于顶部,所以我们需要将此信息提供给内容视图,即滚动视图的剪辑视图。 或者,我们也可以在文档视图本身上调用相同的方法,但是我倾向于总是在内容视图上调用它,因为它是非可选的,而文档视图则不是。 将内容偏移设置为子视图框架的整个高度似乎很奇怪。 有关框架如何在macOS中工作的更多信息,您可以阅读我以前的文章之一。 在那篇文章中,我们介绍了一个翻转视图坐标系的小技巧,让我们在此处应用相同的技巧,以了解如何更改实现以使以iOS为中心的框架查看方式更有意义。 现在,我们创建NSView的子类 ,并将属性isFlipped设置为返回true 。 现在我们可以简单地将内容偏移量设置为从零开始,这很容易推断。 就是这样,在操场上射击并旋转一下,最简单的实验方法就是亲眼看看。 有关NSScrollView必须提供的所有内容的更深入的信息,建议您查阅Apple的文档。