Tag: iOS应用开发

Mikroprojekt:Bild drehen。 iOS(快速)。

源代码:https://github.com/mhennemeyer/image-rotation Das Projekt设置程序最小化ViewController和Storyboard UI。 有关的数据源:RotationViewController.swift,Main.storyboard和MHImageEditing.swift。 情节提要中的RotationViewController的初始化和设计VC。 MHImageEditing.swift statt中的Bearbeitung des Bildes发现者。 Das gesamte UI ist im Storyboard konfiguriert。 Esgibt einen ImageView der das Bild zeigt,ein标签mit dem Winkel der Drehung in Grad,einm Slider undfünfButtons in einem StackView。 滑杆 请参见RotationViewController,以了解每个插座的滑块以及有关ValueChanged-Events的信息。 滑块的同步旋转值。 纽扣 Die Button unten,zum Drehen um einen festen Winkel,sind als Outlet Collection,mit dem jeweiligen Winkel als tag,angelegt […]

使用React Native和TypeScript启动并运行

快速,现代的React Native和TypeScript入门指南 在本文中,我将介绍如何快速将TypeScript添加到React Native项目中。 如今,许多项目都在使用TypeScript。 它提供了JavaScript静态类型,并有助于简化各种组件之间的关系。 在我们的项目中,每当在文本编辑器中保存文件时,我们都会自动将TypeScript编译为可运行的JavaScript。 要查看最终样板,请单击此处。 该项目假设您已经安装了React Native CLI并在您的机器上工作 我们要做的第一件事是创建一个新的React Native项目: 反应本征型脚本 创建项目后,将cd进入目录 cd rntype脚本 接下来需要做的是确保我们在计算机上全局安装了TypeScript: npm i -g打字稿 现在,我们需要继续安装React和React Native所需的类型。 这些类型为我们提供了React和React Native的声明文件。 纱线添加@ types / react-native @ types / react 现在我们已经建立了依赖关系,我们需要创建一个tsconfig.json文件。 该文件将让我们决定诸如根文件,编译器选项和已编译JavaScript的输出目录之类的内容,这些最终将在我们的应用程序中使用。 在目录的根目录中,使用以下选项创建一个tsconfig.json : { “ compilerOptions”:{// 1 “ target”:“ es2015”, “ module”:“ es2015”, “ jsx”:“反应”, “ outDir”:“ build”, “ rootDir”:“ src”, […]

Swift中的新手课程

在上一篇文章中,我谈到了结构,因此我只认为对Classs进行跟进是正确的。 将Classes制造商用来生产产品的模具。 您可以基于一个模具来创建许多产品。 使用一个模具( class ),您可以基于每个模具具有的形状,大小等属性( properties )来创建多个产品( objects )。 让我们看一下代码 打开操场跟进。 这是class的基本语法。 如果您熟悉结构,您会注意到类似的类语法。 假设我们有一个简单的Person class示例。 在该类中,我们将具有name和age的properties ,然后将其赋予一个initializer 。 initializer是我们每次尝试创建Person object时都会运行的方法。 在初始化程序中,我们传递组成Person的参数。 我们简单地创建一个名为person1的变量,该变量等于Person class ,当添加括号时,它将询问我们在初始化器中声明的参数。 现在我们可以使用person1对象并获取其属性。 类中的功能 我们还可以在类中使用函数,这将使我们的人员对象具有调用能力。 使用getName()我们返回一个String说“您的名字是_____” 我们可以通过person1对象访问函数。 类是引用类型 类是引用类型,而结构是值类型。 我将演示引用类型如何工作。 如果您想了解结构和值类型,请转到我的前一篇文章。 如果要创建一个新对象, person2如下所示: 然后创建一个变量person3 等于 person2 : 然后我们更改person3的属性,让我们看看它将如何更改person2。 让我们给person3 55岁 。 现在,让我们同时阅读person2和person3的年龄。 您可以看到两个年龄都相同。 为什么? 这是因为person3本质上是person2。 当我们存储一个类时,我们会将这些信息存储在内存中,并且person2持有对该数据所在位置的引用。 当使person3等于person2时,我们只需查看该数据的相同参考位置。 Person3不是person2的副本。 是人2。 希望有道理。 包起来 这是有关类的非常准系统的文章,我计划在另一篇文章中也涉及类的继承。 […]

并行测试:更早获得反馈,更快发布

作为负责测试Azimo iOS应用程序的唯一人员,我遇到了各种问题。 当我四年前开始在Azimo工作时,测试是100%手动的。 一个完整的测试周期最多可能需要两天的时间。 某些功能根本没有经过测试,更不用说在不同的设备和操作系统上了。 如今,只有15%的测试是手动的。 自动化使我们更快,更高效。 在2018年,我们99.9%的用户没有崩溃。 但是,由于我们应用程序的复杂性,整个测试周期大约需要八个小时。 这段时间的一半以上是由自动化测试占用的。 鉴于我们每周至少发布一次,因此我们需要找到一种方法来进一步缩短测试周期。 幸运的是,6月5日,一场革命来到了。 在WWDC 2018大会上,Apple宣布支持Xcode 10中的并行测试。这将我们250项自动测试的周期减少到大约55分钟,使我的生活压力减轻了很多。 在本文中,我将指导您了解并行测试的好处,因为我们在Azimo上已经体验过它们。 我将概述测试内容,机器配置方式以及遇到的问题。 我还将提供一些技巧,以帮助您充分利用并行测试。 在Xcode 9中为iOS设备引入了并行测试。从那时起,我们就能够在不同设备上并行测试不同的类。 但是,Xcode 9版本要求我们使用带有适当参数的命令行。 Xcode 10的革命性功能是自动化测试器-能够直接从Xcode级别在多个模拟器上同时运行不同的测试类,而无需人工测试。 就像启用该功能一样简单: 在这种模式下,Xcode将创建同一模拟器的多个克隆(例如,如果我们使用iPhone X模拟器,则Xcode将创建模拟的iPhone X克隆)。 这仅适用于模拟设备。 我们将在本文后面讨论物理设备上的并行测试。 好处: 简单直观的配置 更快的测试执行 更快的反馈 允许更多版本 同时检查多台设备上的应用程序服务器(请求,超时等) 无需创建其他测试目标,即可在它们之间分配测试类 与CI完美集成 缺点: 如果后端服务器/应用程序服务器不稳定,则可能发生超时(同一时间的多个请求可能会导致更长的响应) 保持模拟器稳定所需的大量处理能力 脱皮-如果发生上述任何问题 克隆相同的设备/系统配置,无法同时在几种不同的配置上进行测试(我们必须使用命令行) 假设: 使用并行测试必须满足的基本条件是测试用例的独立性。 例如: 我们不能仅在测试A完成后才开始依赖测试B 更快的执行速度或测试B的结果不会影响测试A的结果,反之亦然 有用的参数: maximum-concurrent-test-simulator-desstinations NUMBER要在同时启用并行测试 的情况下测试的模拟器目标的最大数量YES | NO覆盖方案parallel-testing-worker-count方案中的每个目标设置NUMBER确切的测试数量并行测试期间将产生的测试运行程序maximum-parallel-testing-workers编号并行测试期间将产生的最大测试运行程序数 有效的测试划分 […]

看看UIView动画曲线(第1部分)

所以……设计团队只是要求您使动画更性感,然后您变得苍白。 他们是什么意思? 当他们开始谈论关键帧和动画曲线时,情况变得更加尴尬。 动态图形应用程序提供了很大的灵活性,并且对于设计人员而言,有时可能期望在Swift / Cocoa Touch中可以找到相同的灵活性。 当然,我们都知道Swift很棒,一切皆有可能,但让我们坚持基础。 对于UIView动画,我们可以找到以下曲线预设: 枚举UIViewAnimationCurve:Int { 案例EaseInOut 案件缓入 案例缓出 线性情况 } 要尝试这些方法,我将对带有圆角的UIView应用简单的比例转换。 当设计师要求您使动画更性感时,这不是他们的意思。 😉线性曲线是最简单的曲线。 对于我们的比例动画,它使它突然结束。 缓入 缓入会在开始时弯曲曲线。 应用它时,我们的视图在开始时缩放较慢,因此在结束时缩放较快。 这条曲线在这里不太理想。 由于比例尺从0.0开始,因此早期的转换会以看不见的子像素出现。 几乎就像动画只是延迟了开始一样。 缓出 现在,我们不是在开始时放慢速度,而是在年底时放慢速度。 这对于我们的动画效果更好。 缓入缓出 组合“ 缓入”和“ 缓出”时 ,我们得到一条S形曲线,这会在开始和结束时减慢动画的速度。 由于这是UIView动画的默认曲线,因此我们现在可以将代码重构为: 哇! 我们的曲线迅速脱离图表,并在其稳定下来之前将视图缩放到100%以上。 让我们通过将阻尼比增加到0.7来减少弹簧振荡。 更好。 现在,您当然可以说动画蓝色圆圈永远不会令设计师满意,因此让我们看一个更高级的动画。 在这里,我使用了多个春季动画。 它们中的每一个具有0.8秒的持续时间和0.4的阻尼比。 现在,这是一个性感的动画,而我们的春季动画给设计团队留下了深刻的印象。 任务完成! 在我的下一篇文章中,我将进行更深入的介绍,并解释什么是关键帧以及它们如何与UIView动画一起使用。

2016年最新的应用程序开发工具– Netforce信息技术–中

2016年最新的应用开发工具 如果您认为自己有技巧,并且随时了解最新消息,那么您可能正在阅读TechCrunch,Wired,Engadget和Forbes等门户网站。 您还必须密切注意每月出现的最新技术。 智能手机正在变得越来越大,越来越快,越来越薄,越来越轻。 随着我们日复一日的发展,我们也有大量经验丰富的应用程序开发人员,他们正在尝试以更快的方式交付应用程序。 对于应用程序开发 ,下一个至关重要的事情是它应该是跨平台的,这有助于从不同的位置和设备类型获取更多的用户。 最好的部分是,它下面的一些工具可以使您的用户满意。 Xamarian: 微软拥有的软件Xamarian在应用开发行业中非常重要。 拥有C#代码库,用户可以轻松地为Android,iOS和Windows开发应用程序。 Xamarian中最好的功能是它允许在多个平台上共享。 它还具有云服务,允许用户测试各种设备。 定价:每月25美元-158美元 Xojo: Xojo是另一个出色的平台,专注于Mac OS X,Microsoft Windows,x86 Linux,iOS以及Web和Raspberry Pi。 该平台还提供了clous服务,可轻松,安全且免费地进行应用程序维护和网络应用程序托管。 定价:99美元-每年1,999美元 科尼: Kony是另一个出色的移动应用程序开发平台,可帮助构建用于移动设备,平板电脑,台式机和信息亭的应用程序。 它是最流行的应用程序之一,可帮助为消费者和企业创建应用程序。 定价:15美元-每月29美元的用户 雅普: Yapp允许为他们的活动,聚会或团体创建个性化的移动应用。 Yapp是创建和立即发布移动应用程序事件的最简单,最经济的方式。 通过Yapp吸引并享受您的联系。 定价:399美元-1599美元/应用 BiznessApps: BiznessApp被认为是最经济实惠,最简单的平台,它允许小型企业创建移动应用程序。 它是一个应用程序平台,允许在iPhone,iPad,Android和HTML5上创建应用程序。 它允许小型企业甚至不知道编程语言就可以在线创建,编辑和管理移动应用程序和移动网站。 定价:$ 29-$ 59 /月 现在,是什么阻碍了您创建自己的移动应用程序? 了解了这些简单且用户友好的平台后,就没有理由开发自己的应用程序了。 有几种工具可以轻松地帮助您的企业进入Appstore。您所需要的只是口袋里的钱。 最初来自:https://netforcesales.com/netforce/blog/latest-app-development-tools-in-2016/

制作UBER需要多少钱?

身处这个行业,并在App design Studio建立了2个类似Uber的应用程序 ,这就是我的答案。 让我们一一剖析整个想法和应用程序。 重要功能 为了确定Uber应用程序的开发价格,我们需要指定该应用程序的所有基本功能。 GPS,地图和路线图 登记匹配系统 路线和方向 通知与沟通 付款整合 汽车和驾驶员详细信息 评分 让我们更多地分析功能。 GPS,地图和路线图 向客户提供任何实物商品或服务交付的应用程序必须处理映射。 出租车预订应用程序倾向于依赖以下地图和地理位置功能:(1)识别设备的位置;(2)提供行车路线;(3)绘制/突出显示路线;以及(4)与其他地图软件集成。 像Uber这样的建筑应用程序都是关于GPS的。 它用于识别乘客和驾驶员的当前位置。 使用地图和定位可以轻松找到彼此。 为了确定路线并确定行程成本,您需要一个路线服务器。 通常,最好的选择是使用平台固有的地图。 例如,对于Android,这些将是Google Maps。 Uber iOS应用程序使用CoreLocation框架来定位用户的纬度和经度(location)。 CoreLocation框架提供了一些类和协议来配置和安排位置传递,并将位置事件发送到服务器。 CoreLocation框架还允许Uber定义地理区域,并在设备越过定义的边界时监视设备的移动。 使用CoreLocation框架有两种方法可以做到这一点-地理区域监视和信标区域监视(使用iOS设备的机载无线电)。 它们都可以在后台运行。 * iBeacon是一种iOS技术,Apple称之为“一种新型的低功耗,低成本发射器,可以通知附近的iOS设备它们的存在。”信标区域是由设备与蓝牙低能耗信标的接近程度定义的区域。 (使用Bluetooth Low Energy 4.0的发射机广播兼容或智能设备可以看到的信号)。 Android版本的Uber应用的地理位置是使用Google的Location API实现的。 他们可以智能地管理基础定位技术,同时满足实现定位功能的各种开发需求。 登记匹配系统 像Uber这样的应用程序为普通用户提供了几种注册方法,并且从一开始就要求电话号码。 对于驾驶员,此过程包括亲自拜访公司以及提供其文件的扫描件。 匹配系统是一个组件,它使乘客能够快速找到乘车路线并允许驾驶员接受乘车要求。 为了正常工作,需要考虑特定驾驶员和乘客的位置以及驾驶员的状态(忙碌或准备工作)。 看到骑行请求后,驾驶员通常有大约15秒钟的时间接受请求。 尽管有些服务允许您从可用的服务中自己选择驾驶员,但这会使系统复杂化,并使订购汽车的过程更长。 路线和方向 为了在出租车应用程序内的地图上显示点对点方向,iOS Uber应用程序的开发人员使用了MapKit。 注册为路由应用程序后,即可将路线信息提供给“地图”应用程序和用户设备上的所有其他地图绘制软件。 Google Maps Android API […]

Xamarin Mac Agent,适用于Visual Studio和Mac na Rede

名为“ Acesso Remoto”的名称为“ esquerda”和“ seguida allowa”的名称为“ Todos osusuários”。 Feito isso,或其他访问者。 观察先前的图像,例如“ Acesso Remoto:Ativado”,存在以下名称:para iniciarsessãode forma remota nested computador,数字为“ ssh Juliano@192.168.25.145”。 Essesnúmerosapóso“ @”(192.168.25.145)保留所有权利。 在Mac上进行IP保护,在Visual Studio上没有Windows即可配置。 Requisitos Windows 在Xamarin configurado no seu窗口中的必需品,在以下位置购买:Xamarin no Windows的配置文件 Windows配置 Abra o seu projeto Xamarin否Visual Studio e提示Xamarin Mac Agent。 恩科斯-泰莫斯-杜恩斯-福马斯-德恩孔特拉地区: 1-工具-> iOS-> Xamarin Mac Agent 2 —工具->选项-> Xamarin-> iOS设置->查找Xamarin Mac Agent Em […]

学习Swift和iOS开发第5部分:数组

数组是有序集合类型。 它存储多种类型的数据集合并按数字顺序排序。 我们在第3章中学到的变量非常适合存储单个值。 在现实世界中,我们经常需要跟踪属于同一类别的多个数据。 例如,员工薪水,我们收藏中每本漫画书的价值或商店库存中每件商品的成本。 为上述每个项目创建一个单独的变量很费时,而且老实说这不是一个好代码。 这就是数组的来源。*提示胜利的音乐*! 数组是一个有序的集合,允许我们存储多个值。 在本章中,我们将看到它们的实用性。 搭建游乐场 首先,如果尚未打开Xcode,请点击Create New Playground 。 命名为“ Arrays”,然后单击“ Next 。 选择某个位置以保存此.playground文件,然后单击“ Create以保存它。 您应该会看到类似下面的屏幕。 删除左侧的所有样板代码,但根据需要保留import UIKit 。 创建你的第一个数组 让我们使用以上示例之一:收藏集中每本漫画书的价值。 🤓想象一下,您有一个收藏集,尽管很小,但其中包含5本漫画书。 它们各自具有不同的值。 我们可以为每本漫画书创建一个变量,并像这样存储值: var comicBook1 = 10.0 var comicBook2 = 27.50 var comicBook3 = 1015.0 var comicBook4 = 55.0 var comicBook5 = 2.0 如果有人偷了您的一本漫画书怎么办? 如果您卖了一个怎么办? 您将需要手动删除该行代码,然后重新编号其后的变量,因为每个变量都有特定的编号和顺序。 相反,我们可以创建一个名为comicBooks的数组,并将值放在其中,如下所示: var comicBookValues […]

Swift:forEach和forIn循环的实例方法之间的区别

Swift 3提供了一种使用ForEach迭代for循环的新方法。 它的工作方式与in loop相似,但是两者之间存在一些基本差异。 我尝试在Employee对象的函数中同时运行两种实例方法。 下面是操场的快照。 如果通过上面的示例看到的话,如果您尝试访问并遍历数组的每个元素,则两者之间绝对没有区别。 差异1:您不能使用break或Continue语句在forEach循环中退出闭包的当前调用,但是您可以在forIn循环中执行相同的操作。 附件快照如下: 差异2:使用return语句ForEach循环仅针对闭包中的当前调用退出,而ForIn循环也退出所有后续后续调用。 附件快照如下: 您可以从我的GitHub存储库https://github.com/creative-rd/SwiftNuggets/tree/master/Swift_ForEachvsForIn.playground下载已删除的游乐场。 保持冷静,编码吧! 参考:https://developer.apple.com/documentation/swift/array/1689783-foreach