Tag: 开发人员

为什么要对Fastlane使用连续部署?

作为iOS开发人员,您担负着许多职责,例如编码,为不同环境创建证书和临时证书,创建开发和发行版本,生成用于应用商店部署的屏幕截图,在发布应用之前将必需的元数据添加到应用商店并将其上传到应用商店。 因此,除了实际的开发之外,还有很多杂项任务需要照顾。 而且您必须每次都执行它们。 您想花时间做有意义的事情,这就是Fastlane出现的地方。 Fastlane自动执行这些琐碎的任务,这些任务是使用少量命令来部署构建所必需的。 是的,这是对的。 Fastlane几乎可以处理为不同环境创建证书和临时证书,创建开发和发行版本,生成用于应用程序商店部署的屏幕截图,将必需的元数据添加到应用程序商店以及将应用程序上载到应用程序商店的所有操作。 就这么简单! 您只需要设置Fastlane即可,所需的工具和少量命令集将为您完成所有工作。 Fastlane提供了各种工具来自动执行这些任务。 您可以根据需要使用这些工具。 但是在那之前 如何为您的新/现有项目设置Fastlane? 打开终端并使用以下命令导航到您的项目路径,然后按Enter。 cd ~/your project path 输入以下命令,然后按Enter。 fastlane init 将Fastlane添加到项目后,它将具有Fastlane文件夹,其中应包含以下所示的文件。 在这里, Appfile存储应用程序标识符和您的Apple ID。 Fastfile管理您创建的调用某些操作的通道。 通过Deliverfile ,您可以在将应用程序提交到App Store时添加所需的元数据。 泳道基本上是一个动作项目,按照您的指令和所需顺序执行某些任务。 您可以创建多个通道及其关联的任务。 完成后,您可以呼叫任何特定的车道以执行其任务。 这是Fastlane的工具列表。 cert:自动创建和维护iOS代码签名证书。 这将确保您在本地计算机上安装了有效的证书及其私钥。 要使用此工具,请运行命令fastlane cert 。 仅当需要创建新证书时, 证书将 –创建一个新的私钥 –创建一个新的签名请求 –生成,下载和安装证书 –将所有生成的文件导入您的钥匙串 请注意 cert将永远不会撤销您现有的证书。 如果您无法再创建任何证书,则cert会引发异常,这意味着您必须撤消其中一个现有证书才能为新证书腾出空间。 感叹:因为您宁愿花时间在建物上,也不愿与资源调配作斗争。 是的 它可以创建,更新,下载和修复供应配置文件(使用一个命令)。 它支持App Store,Ad Hoc,Development或Enterprise配置文件,并支持一些不错的功能,例如自动添加所有测试设备。 叹息将确保您在本地安装了与已安装的证书匹配的有效配置文件。 要使用此工具,请运行以下命令 […]

Como Programar en Swift con iOS 12(第3部分)

Bienvenidos a la tercera parte de esta serie de tutorials。 《从前的事实》到《从无到有的事实》 。 从本质上讲,它是一种可组合的,可转换的组件,还可以在ViewController和Podigo中进行修改。 可以从任何人那里得到的东西,可以使您在任何时候都可以使用的东西,可以在任何时候都可以使用。 您可以使用Vamos Hacer或Funcionen! Vamos a mostrar una alerta cuando elbotón“ Calcular” haya sido pulsado。 没有人打扰到我。 Para eso vamos a escribir algo decódigoSwift😎💪 -> 工程浏览器 ,单击ViewController.swift El Interface Builder为 WTF color着色。 Esto es elcódigoSwift de tu应用程序: 的功能,没有接收到Agrega la siguientelíneadecódigodebajo de laúltimallave的信息,didReceiveMemoryWarning didReceiveMemoryWarning() @IBAction […]

在UIkit中创建iOS自定义视图

最初 由 Andres 在2017年10月17日 发布在 www.scalablepath.com 上。 我刚从大学毕业就开始使用iOS。 使用不熟悉的平台和编程语言是一项挑战。 真正使我紧张的是什么? 是创意团队要完成的设计。 出色的设计可以为网站注入新的活力,但它越独特,就越有可能需要在UIKit中创建iOS自定义视图。 作为一个新开发人员,这可能会令人生畏。 本文的目的是解释如何将任何设计转换为功能用户界面元素。 iOS定制视图 视图是应用程序用户界面的基本构建块。 通常,您可以通过将故事板中的视图从库中拖动到画布来在其故事板上创建视图。 但是,有时您需要使用UIKit中的标准“标签”或“按钮”元素创建一个不可用的元素。 这是您需要自定义视图的时间。 顺便说一句,如果本文中的任何术语听起来都不熟悉,您可能需要查看Apple的UIKit文档。 在本文的其余部分,我将假设您具有UIKit和Swift的使用知识。 初始设计 让我们从选择无法在标准UIKit视图中重新创建的设计开始。 我找到了由耿高设计的“圆形进度栏”,它非常适合该法案。 此元素由两个文本标签(标题和副标题)和一个圆形完成指示符组成,该指示符旨在在任务进行时填充灰色轨道。 我们将从创建一个新的Xcode项目并将其命名为CircularProgressBar开始。 文件>新建>项目>单视图应用程序 当我们将创建自定义UIView时,我们需要使用新类CircularProgressBar扩展UIKit的默认UIView。 导入UIKit class CircularProgressBar:UIView { } 有两种向设计中添加标签的方式:通过代码或使用.xib文件。 为了避免进一步的混乱,术语“ xib”和“ nib”通常可以互换使用。 NIB来自“ NeXTSTEP Interface Builder”,这是苹果现已停产的操作系统。 虽然.nib文件已替换为.xib文件,但开发人员仍将其称为“ nibs”。 我喜欢使用.xib文件创建我的iOS自定义视图,因为它们需要较少的编码并且更容易进行更改。 因此,我们执行此操作,并将其命名为CircularProgressBar。 文件>新建>文件,然后选择查看 我们将在导航器中选择CircularProgressBar.xib,然后将.xib的文件所有者定义为我们的类扩展名:CircularProgressBar 等一下,什么是文件所有者? StackOverflow提供了比以往任何时候都更优雅的解释: “文件所有者是一个实例化的运行时对象,在加载.nib时,它拥有.nib的内容及其出口/动作。 它可以是您喜欢的任何类的实例。” 有了这些了解,我们将隐藏状态栏,并将.xib的大小设置为“自由格式”。 这样,我们可以更改尺寸,以便视图具有与设计相似的尺寸。 在这种情况下为300 x […]

应用开发简介

有一个应用程序 关于成为一名程序员,我比其他任何人都被问到的问题是“嘿,兄弟,我想学习制作应用程序,我应该从哪里开始?”或其他形式的变化。 一旦有人开始学习某种语言或希望开始学习某种语言,那么可能出现的第一件事就是我如何使用已经获得/将要获得的编程技能来创建可以向人们展示的应用程序。 这个问题的问题在于它太模糊了。 自苹果发布首款iPhone并带来“应用程序”概念以来,已经过去了将近10年,该应用程序可以部署在可在操作系统上运行的“应用程序商店”上。 在整个应用程序革命之前,操作系统上运行的所有内容通常都被称为软件或应用程序。 而且它不像应用程序开发那么出色。 随着智能手机及其操作系统(如Android和iOS)的疯狂成功,您开发的应用程序将在全球数十亿拥有智能手机和互联网连接的人的手中。 通过应用商店,您可以为应用设定价格,或者使用应用内购买或仅需几行代码就可以包含在应用中的广告,使这些应用获利也变得非常容易。 这意味着成为“应用程序开发人员”实际上是一种可行的职业,可以为您提供稳定的收入来源。 随着越来越多的新程序员加入到越来越多的应用程序开发人员队伍中,应用程序已经从完成了计算器或气象应用程序之类的小型应用程序,发展成为令人难以置信的复杂软件,可以完成从叫车到打车的所有工作。您可以与您的朋友联系,打电话给您的家人到世界一半的地方,甚至可以监控您的健康状况并帮助找到治疗癌症的方法。 这意味着整个应用程序生态系统还刺激了对其他相关业务(如服务器后端,数据存储解决方案和IDE的实际编码)的需求。 这是苹果公司针对iPhone的广告,其中大量的应用程序是他们的主要卖点 因此,现在回到如何制作应用程序这一主题,您将需要做出许多决定: 我正在开发什么样的应用程序? 会是游戏吗? 还是可以帮助人们更有效地完成工作的工具? 还是它将成为人们的交流平台? 我要在哪个平台上分发它? 将用于网络吗? 还是用于移动设备? 如果用于移动设备,则使用哪个平台,Android,iOS或Windows Phone? 会是跨平台的吗? 我擅长什么语言,我需要学习什么语言? 我是否具有为要构建的平台编程所需的硬件和软件? 在找到上述问题的答案之后,您将有良好的基础开始在该应用程序上进行实际工作。 现在,所有应用程序的构建方式都不相同,每个类别的工作流程略有不同。 让我来看看其中的一些。 我通过学习HTML,CSS和javascript开始编程。 这些语言是现代网络的基础,对于开始编程的人来说,它们是非常好的“网关语言”。 这是因为所有这些语言的入门门槛都非常低,可以容忍初学者程序员犯的常见错误,并且它们是一些最受欢迎的编程语言,因此在互联网上无处不在。 诸如堆栈溢出之类的网站上充斥着有关这些语言的信息,您真正面临的问题很可能已经由堆栈溢出的真正有用的社区解决,您所需要知道的只是外观。 现在,按照他们的传统常识,没有人会认为这些语言中的任何一种都是您用于应用程序开发的语言,但是您会感到惊讶。 Web应用程序或在浏览器中运行的应用程序仅使用这些语言编写,现在甚至可以在Node.js的帮助下使用JavaScript编写后端服务。 这些应用程序既可以托管在您的服务器上(例如web.whatsapp.com或inbox.google.com),也可以使用Chrome网络应用商店打包和部署,这些应用程序使chrome浏览器的用户即使在离线状态下也可以使用该应用程序, chrome图书(我听说你很窃笑,但chromebook的销量仅次于macbook,并且由于其极低的价格而增长很快)是它们唯一的应用程序来源。 您还可以使用phonegap / Xamarin / Titanium mobile等服务在移动设备上分发基于Web的应用程序。 这绝对不适用于所有类型的应用程序,因为网络应用程序的性能受到严重限制,它们的本机功能也是如此,例如对指纹读取器,蓝牙和其他网络功能的正确访问。 以下是您可能需要在此处开始的一些事项: 一个好的文本编辑器: 很多人可能只对终端上的VIM或emacs甚至记事本感到满意。 但是许多其他文本编辑器为表带来了很多好处,例如代码突出显示,代码建议,自动完成,花括号完成等。 我会推荐的一些非常好的工具是Notepad ++,Adobe Brackets,Sublime和Github Atom。 最后,文本编辑器的选择完全由您决定,您应该选择最适合自己的一种。 节点程序包管理器(NPM): 在下载软件包及其依赖项时,这是一个非常宝贵的工具,在为您的项目下载工具和库时,它将真正为您提供帮助。 […]

IOS开发人员培训生

OSรื่องราวครั้งนี้….จะเกี่ยวกับประสบการณ์ในการฝึกงาน่งนตำแหน่งIOS开发人员ในระยะเวลา1เดือนการฝึกงานครั้งนี้ เามนี้จะเน้นเรื่องที่เคยได้ทำคร่าวๆนะครับ มาเริ่มกันเลย 1.เรื่องการทำUI(用户界面) ได้รู้อะไรบ้างละ? คร่าวๆก็มีเรื่อง วกับรู้เกี่ยวกับAUTO LAYOUT staารผูกconstaintการจัดวางVIEW 定制视图,单元格,表视图 ทำารทำXIB ผูกStoryรardกับ视图控制器 ใช้ารใช้导航 2.ได้รู้และลองทำเรื่องMVPในการเขียนโค๊ด(设计模式) กรื่องการแยก模型视图演示者 ทำารทำPresenter Builderเพื่อช่วยในการเทสง่ายขึ้น ทำารทำ协议ถ้าภาษาอื่นก็คือ接口นั่นเองส่วนใหญ่จะนำมาใช้เมื่อต้องการส่งค่าบางอย่างไปยังหน้าView Controllerและเป็นCallbackในInteractor Data Map DataModelขRequest请求และ响应งAPIที่แอใช้ตัวในครั้งนใช้ตัวM ObjectMapperในMapารMap Json ใช้RXSwiftในการ呼叫服务แต่ก็รู้ไม่มากเนื่องจากในโปรเจคได้มีการวางโครงสร้างไว้แล้วจึงได้แต่รู้ว่านำมาใช้ยังไง การทำ互动器 ทำารทำRouterเป็นตัวกลางในการ重定向ไปยังหน้าอื่นๆ 3.เรื่องของการทำTest INIรู้เรื่องของUINIT TEST 存根,间谍,假และทำอู้เารakeอและ T UI测试มอทดสอบว่าทำงานถูกต้องตามFlowหรือไม่ 4.เรื่องของการเขียนโค๊ด โค๊ดแบบารเขียนโค๊ดแบบ干净 การตั้งชื่อไม่ว่าจะเป็นตัวแปรฟังค์ชั่นคลาสและการตั้งชื่อเทส ใช้Enum Structและ类 ใช้รื่องการประกาศเช่นการใช้ใช้懒周开放 ilรื่องnilการป้องกัน可选(无)ใช้Guardการใช้var let if else SwiftนฐานภาษาSwiftเบื้องต้น ก็จะเป็นคร่าวๆสำหรับการฝึกงานตลอดหนึ่งเดือน //และความรู้อื่นๆที่ได้เพิ่มมาคือAngularและKotlinเบื้องต้น

从行程到小部件

Skyscanner应用程序动态结果页面的故事 由Zsombor Fuszenecker 到目前为止的故事… 在Skyscanner,我们会不断地在我们的应用程序上进行迭代,以帮助旅行者找到适合您旅行的最佳航班,酒店或租车服务。 毫不奇怪,搜索结果页面是应用程序最重要的部分之一。 这是我们的用户将大部分时间用于比较结果和更改搜索参数的地方。 最初,航班搜索结果页面仅用于显示航班行程。 但是,在发布具有以下结果列表的新版本的应用程序后,我们意识到可以改进来自同一提供商的具有多个选项的路由。 请注意,上面的结果非常相似(相同的承运人,价格相差不大,飞行时间略有不同),并且像这样的列表在小屏幕上显示有大量物品并不容易浏览。 我们的目的是使比较变得简单,因此我们最近修改了此页面的外观,以确保比较飞行选项在尽可能小的屏幕上进行浏览。 我们迅速从了解问题转向研究可行的解决方案,然后迭代许多原型。 最后,我们认为我们找到了最佳解决方案:我们没有显示具有很多直航的航线的几乎相同的航班列表,而是按航空公司对列表进行了分组。 通过这样的概述,可以很容易地比较直接承运人及其价格。 我们称这个额外的内容为小部件 。 随着时间的流逝,我们想要添加到结果列表中的事物数量越来越多。 警告消息,推荐小部件和赞助广告只是结果列表中许多其他项目的一部分。 每次我们添加新类型的内容时,更改应用程序的代码都不是一件容易的事。 有一个巨大的文件,其中包含许多条件和边缘案例处理逻辑。 我们还想进行试验,这意味着我们的数据源甚至充满了条件。 创建新的小部件时,开发人员必须经过数百行的If语句。 没有我们的全力支持,一切都容易被打破,其他团队也无法做出贡献。 因此,在意识到我们无法在结果列表上进行足够快的迭代之后,我们开始计划在其背后的新架构。 设计目标: 快速迭代新的小部件并使其更容易进入列表 最小化创建新小部件会破坏另一个小部件的风险 使实验变得容易; 添加新的小部件应该不难,也不需要列表后面的团队的全面支持。 可以并行或顺序运行小部件计算代码。 使列表在后端可配置,以便独立于应用发布周期发布 我们称该项目为“ Widgetify”。 从构思到生产: 我们的第一步只是绘图。 我们自己坐下来,做了一些建筑草图。 然后我们提出了自己的想法,并达成了团队共识。 在初步感觉到“它在理论上可行”之后,我们创建了Feature标志并将其推到我们的主分支(尽管我们并未在生产中启用该功能,甚至在内部也未启用)。 然后,我们创建了基类,其中第一个调用端口是显示默认内容的列表。 我们能够对列表进行过滤和排序,所有内容(甚至分析)都可以像以前一样工作。 在此阶段,我们默认情况下在内部启用此功能,以便尽快捕获错误 接下来,我们创建了一些虚拟小部件,并确定了该项目可以证明未来。 有时,我们发现一个旧的小部件无法在新平台上正常工作,因此我们不得不关闭该功能并修复该特定的小部件提供商(在Skyscanner,我们现在每个平台执行2周的发布周期)。 最终,当我们觉得有东西要向其他人展示时,我们开始在内部推广该平台并收集其他团队的反馈。 为此,我们在团队旁边坐了三天,帮助他们创建自己的内容。 作为回报,我们获得了宝贵的反馈,并且基于集体反馈,我们反复进行以使构建新内容变得更加容易。 卡和提供者 Widgetify的工作方式如下:我们要在列表中显示的所有新内容(卡片)类型都必须具有provider 。 我们可以基于功能标记注册此提供程序以启用内容类型。 但是提供商并不总是需要退回卡。 例如,如果您是美国公民或永久居民,或者您位于美国境内,则只有在您的旅行符合美国政府批准的十二个类别之一的情况下,才可以前往古巴。 这是法律要求。 我们在每次搜索时都会启动Cuban警告提供程序 ,但是,只有在搜索条件和用户符合条件时,它才会返回一张卡片。 […]

iMessage Sticker Pack应用程序-iOS

是否可以在不编写任何代码的情况下创建iOS应用? 🤔 是的,你可以😬 开始一个新项目→选择Sticker Pack App 2.为您的项目命名 3.选择贴纸包文件夹以添加贴纸 4. 将贴纸拖到贴纸包文件夹 5. 重新排列标签,如果需要 6.您可以选择贴纸大小以在iPhone上显示 7.添加iMessage 应用程序图标 8. 运行您的贴纸包应用🤠 就是这样。 您的贴纸包现在可以下载了😎 我已经创建了2个很棒的贴纸包 – 设计反馈贴纸包 – 启动贴纸包 试试看吗? Anas Zaheer(@anasaman_p)| 推特 Anas Zaheer(@anasaman_p)的最新推文。 #iOS开发人员@NFNLabs。 印度金奈 twitter.com

Google跟踪代码管理器

手机设置 ipามนี้จะต่อเนGoogleองมาจากSiphong Tanavongchinda Googleรที่ยงรู้ว่าGoogle跟踪代码管理器 Google跟踪代码管理器 的1:在มาทำความรู้จักกัน ก่อนmedium.com Google跟踪代码管理器 ที่อนSetup 2:Setupริ่มยังต้น设置ไงดีนะ?? medium.com rdาเริ่มติด3rd party标签กัน(สำหรับmobile) งนองGoogle Analytic ค้นหา追踪IDของGoogle Analyticsในส่วนAdminมาใส่(ตามรูปคือUA-68562218–3) 2. Googleน้าGoogle跟踪代码管理器ให้设置帐户และ设置容器(iOSในส่วนของAndroidวิธีการจะเหมือนกัน) 3.จากนั้นก็新标签ขึ้นมาใหม่โดยเลือกเป็นUniversal Analyticsแล้วใส่跟踪IDลงไป สร้าง字段名称เป็น字段ที่สนใจในที่นี้ใช้屏幕名称 3.添加触发器และเลือกAll Eventเพื่อทำการtrackในทุกeventหรือSome Eventเฉพาะที่สนใจ 4.创建变量ให้ชื่อตรงกับ字段名称ที่สร้างในข้อ3เพื่อเป็นตัวอ้างอิงVariableตอนส่งข้อมูลกลับมา 5.公用容器公用标签数据公用标签 มแล้วก็กดอพร้อมแล้วก็กดPublicโลดดด codeนของXcode นำไฟล์ที่ดาวน์โหลดได้มาแอดลงไปในXcode项目 2.ทำการPod Google跟踪代码管理器SDKเข้ามาในProject 3.导入库ไปในไฟล์新娘Headerเนื่องจากSDKเป็นobj-C 4.ติด源代码ลงในAppDelegateโดยidต้องตรงกับไฟล์ที่ดาวน์โหลดมา 5.ติด数据ที่ต้องการ跟踪ViewControllerที่ต้อที่ต้ารส่งย事件โด屏幕名称เราได้ตั้งค่าในส่วนGoogle Tag Manager仪表板ashนตอนแรกแล้ว 6.ทดสอบการติดตั้งในGoogle Analytics仪表板เป็นอันเสร็จ

在MKMapView上绘图

我在MKMapView上绘制折线和多边形的笔记 首先,将“地图视图”拖动到“视图控制器”并添加约束。 将此地图视图拖动到视图控制器以创建@IBOutlet。 切记要使View Controller符合MKMapViewDelegate并将委托函数添加到View Controller中,如下所示: 您可以根据自己的喜好设置颜色。 现在开始绘制。 在视图控制器中添加一个保存坐标的属性 变量点= [CLLocationCoordinate2D]() 在本教程中,将isUserInteractionEnabled设置为false,以便不会拖动地图。 @IBOutlet弱var mapView:MKMapView! 覆盖func viewDidLoad(){ super.viewDidLoad() mapView.isUserInteractionEnabled = false } 现在我们需要重写touchesBegan函数: 覆盖func touchesBegan(_ touches:Set ,事件:UIEvent?){ mapView.removeOverlays(mapView.overlays) 如果让touch = touches.first { 让坐标= mapView.convert(touch.location(in:mapView),toCoordinateFrom:mapView) points.append(坐标) } } 上面的代码在“地图视图”上检测触摸位置并进行隐式协调。 然后,将该坐标添加到点数组。 覆盖函数touchesMoved获取路径上的每个点: 覆盖func touchesMoved(_ touches:Set ,事件:UIEvent?){ 如果让touch = touches.first { 让坐标= mapView.convert(touch.location(in:mapView),toCoordinateFrom:mapView) points.append(坐标) 让折线= MKPolyline(坐标:点,计数:points.count) mapView.add(折线) } 最后,用MKPolygon完成绘图以突出显示选择区域。 […]

iOS 12:Apple Presenta la nuevaversiónde su sistema操作

2018年6月4日,ApplePresentóWWDC lasúltimasnovedades para desarrolladores,entre sus nuevos productos tenemos iOS 12。 在iOS 11上使用操作系统时,通常会遇到一些问题,特别是在iOS 11上可能会出现问题,特别是在某些情况下,应该以反义词为准。 Desde el punto de vista de dessarrollo de软件,tanto Xcode como Swift han sido Actualizados,El nuevo compilador estodavíamás有效的y el nuevo SDK garantiza un renderizadomúsfluíplilas vistas de nuestras。 决赛获得最佳球员奖,埃塞俄比亚足协冠军和最佳球员奖得主。 最新消息 最终客户可以在不负责任的情况下获得一份新的书面通知,从新客户那里获得一份可兑换的原始报酬,您可以从最终客户那里获得一笔交易。 从iOS到tremodamente alto的日常使用,以及从iOS 11到11%的存储库的实际使用情况。 La tentencia se viene repitiendo cadaañoy,dadas las Expectativas,esteañovamos a estar […]