Tag: 移动

Xamarin iOS验证文本字段教程

我最近开始涉足移动开发。 特别是使用Xamarin iOS。 这是一次很棒的经历,我正在一个副项目上取得重大进展,我希望它将在未来几个月内达到足够的体面并向公众发布。 如果您像我一样,那么您不是UI / UX或设计方面的专家-也不想花很多时间假装自己-但当您的应用在原型制作过程中看起来像是一团糟时,您一定会感激不尽并获得功能布局。 为此,重要的是要拥有随时可用的工具,以便在保持整洁外观的同时快速进行原型制作。 在这篇文章中,我将提供有关如何实现这样一种工具的教程。 我想这是向您介绍我的平面和最小验证文本字段的地方: 如果这看起来有用,请继续阅读。 我要直接跳进去! 我想指出的是,在本教程中,我假设您对Visual Studio和Xamarin iOS有一定的了解。 但是,如果您是一个全新的人,而我却很快地浏览了所有内容,我很乐意回答问题! 您可以在 此处 参考完整的源代码 。 让我们从创建一个新的单视图应用程序开始。 项目加载后,打开情节提要并添加新的UITextField并执行以下操作: 给它一个标识名(我使用了NameTextField) 将其尺寸调整为275px x 30px 删除边框样式 删除初始文字 添加占位符文本 可选:添加约束 您应该最终得到类似于以下内容: 您显然不需要使用任何自定义字体,但是在本教程中,我使用了EB Garamond和Oswald。 对初始视图控制器满意后,保存情节提要并退出。 现在获取一些实际代码。 我们要做的第一件事是添加用于着色UIView边框的功能。 我们将通过扩展方法来实现。 将一个新的类文件添加到您的项目,名为UIViewExtensions.cs。 初始代码如下: 在进入验证文本字段之前,让我们进一步进行边框着色功能,并创建一个名为BorderedTextField的新类。 创建一个名为BorderedTextField.cs的新类文件,并按如下方式填充它: 我真的希望你们中的一些人觉得这有用。 如果您有任何疑问或反馈,我希望听到,所以请联系。 否则,谢谢您的阅读! 再一次,您可以在 此处 引用完整的源代码 。

在iOS 10.3:小版本中自定义应用程序图标。 大功能!

多年来,iOS开发人员(包括我自己)一直希望能够自定义应用程序图标。 但是整个iOS生态系统(以及后来的Clock)中只有一个应用程序可以实现:Calendar-本地Apple应用程序,使用当前日期更新其图标。 这个看似很小但看似复杂的功能(需要4个API)开辟了许多可能性! 这里只是几个: 利用多租户模型的企业应用程序; 为每个客户提供他们自己的自定义品牌的应用程序图标。 利用免费增值模式的应用; 当用户购买完整版本时,请从图标中删除“精简版”。 让用户选择他们支持的团队作为其应用程序图标; MLB应用程序可以提高用户参与度,并提供新颖的应用程序体验。 让我们以MLB At Bat应用程序为例,说明自定义应用程序图标的过程。 打开应用程序,点击设置,然后点击“设置主屏幕图标”。点击您最喜欢的团队,您就完成了。 就这么简单。 从安全角度来看,我敢肯定苹果公司不愿意启用此功能,因为它可能会误导用户或给非技术精明的人造成混乱或问题。 但是,苹果公司最终解决该问题的方式非常简单。 无论更改是由手动用户选择还是由自动配置驱动,都会显示一个弹出窗口(如上所示)以请求用户验证。 如果要利用此功能,开发人员要考虑的唯一警告是,必须在Info.plist文件中包括资产和条目才能使其正常工作。 这意味着您将无法即时更改图标; 图标在提交到AppStore之前必须预先包装在IPA中。

React Native和OneSignal第1部分(iOS)

对于React Native,使用One Signal api进行远程通知非常轻松且舒适。 有非常简单的安装和配置步骤。 让我们开始; 创建一个React Native项目 $ react-native init项目 安装一个信号包并链接到项目 $ npm install-保存react-native-onesignal $ react-native链接react-native-onesignal 如果您没有,请注册一个信号帐户。 在XCode中打开您的项目,然后转到“ 功能”标签,然后将“ 推送通知 ”设置为“开” 再次在“ 功能”选项卡中,找到“ 后台模式”并将其设置为“开”,然后选中“ 远程通知” iOS推送证书 访问此页面并使用“自动配置工具”轻松创建证书。 下载.p12文件。 从OneSignal的“所有应用程序”页面中选择您的应用程序,然后转到“应用程序设置”,然后按Apple iOS设置右侧的配置。 上载之前导出的.p12文件 从’react’导入React,{组件}; 从’react-native-onesignal’导入OneSignal; //从节点模块导入包导出默认类App扩展了组件{constructor(properties){ 超级(属性); OneSignal.init(“ YOUR_ONESIGNAL_APPID”); OneSignal.addEventListener(’received’,this.onReceived); OneSignal.addEventListener(’opened’,this.onOpened); OneSignal.addEventListener(’ids’,this.onIds); } componentWillUnmount(){ OneSignal.removeEventListener(’received’,this.onReceived); OneSignal.removeEventListener(’opened’,this.onOpened); OneSignal.removeEventListener(’ids’,this.onIds); } onReceived(通知){ console.log(“收到通知:”,通知); } onOpened(openResult){ console.log(’Message:’,openResult.notification.payload.body); console.log(’Data:’,openResult.notification.payload.additionalData); console.log(’isActive:’,openResult.notification.isAppInFocus); console.log(’openResult:’,openResult); […]

iPad和iPhone技巧—从Goodreader应用程序共享#PDF

通过#iOS设备进行文档管理 我最喜欢的移动文档管理应用程序是GoodReader(iOS应用程序商店链接),我已经使用8年了! 这是有关通过应用程序和“拼合”注释共享PDF文档的快速提示( 如果收件人不需要进行更改(例如,如果您签署文档并一起转发 ),请始终执行此操作 )。 这是邮寄PDF的方法 1 —在GoodReader中打开PDF 以下步骤显示了处于活动状态的“浮动菜单”。 通过点击屏幕中央可以“激活”此功能(点击屏幕将菜单切换为ON和OFF-FYI)。 2 —点击屏幕底部的共享按钮 出现“选择动作”菜单。 选择所需的选项-就我而言,我想通过电子邮件发送PDF。 注意:如果对文档进行了广泛的注释,则可能需要选择“电子邮件文件+摘要”。 这将与文档一起发送对文档所做的所有注释的摘要。 在正确的情况下非常有帮助! 3-必要时展平注释 通常,您希望使注释变平(这使标记成为文档的一部分,而不是单独的“层”)。 这将确保收件人可以“看到”文档上的注释。 如果您不这样做,则根据收件人查看PDF的方式,可能不会显示它们。 4 —发送文档 而已。 收件人将通过电子邮件收到您的文档。

中等需求的iOS应用程序上的东西,这样我就不会失去理智

亲爱的朋友@中, 我们中的某些人将平板电脑用作主要计算机,而我们中的某些人则喜欢甚至更喜欢Medium iOS应用程序的简便性。 但是,有一些微小的小问题会使应用程序变得更好,更易于使用,并且完全不需要临时移动到台式机/笔记本电脑(或切换到我的移动浏览器并假装成成为桌面浏览器),以便我可以调整故事。 图像:我喜欢选择使图像居中或围绕文本环绕。 我们目前在应用程序上没有该选项。 画廊:图像网格很棒,但是在iOS中,我每次只能上传一张图像。 我们可以做到这一点吗? 计划:实施起来并不难。 如果我可以安排故事安排在以后在完整的浏览器中撰写时发布,那么我应该可以在移动设备上使用相同的选项。 出版物:对某人的出版物有更多控制权,例如能够查看统计信息和关注者信息。

如何在Windows上使用Xamarin绑定Fat iOS框架

使用Xamarin开发Android项目时,我没有遇到任何麻烦。 但是,使用Xamarin构建iOS应用程序时,这是完全不同的体验—更复杂。 在本文中,我将分享我使用Xamarin绑定DynamsoftBarcodeReader.framework的经验。 将iOS框架与Xamarin绑定 下载 DynamsoftBarcodeReader.framework是用于条形码检测的SDK。 用Linkwith.cs文件链接依赖项 在Visual Studio 2015中创建一个iOS绑定库项目: 将DynamsoftBarcodeReader.framework \ DynamsoftBarcodeReader重命名为DynamsoftBarcodeReader.framework \ DynamsoftBarcodeReader.a ,然后将静态库拖到项目中。 IDE将自动生成相应的DynamsoftBarcodeReader.linkwith.cs文件: DynamsoftBarcodeReader.framework依赖于libc ++。1.dylib 。 参考ObjCRuntime.LinkWithAttribute类, DynamsoftBarcodeReader.linkwith.cs编写如下: using System; using ObjCRuntime; [assembly: LinkWith (“DynamsoftBarcodeReader.a”, LinkTarget.ArmV7 | LinkTarget.Simulator, ForceLoad = true , LinkerFlags = “-lc++.1”)] 使用Objective Sharpie生成ApiDefinition.cs ApiDefinition.cs是定义API合同的地方,该文件描述了如何将基本的Objective-C API投影到C#中。 您可以为库手动定义所有API,也可以使用仅在macOS上运行的Objective Sharpie自动生成定义。 这是为DynamsoftBarcodeReader.framework生成ApiDeifinition.cs的命令: sharpie -tlm- do -not-submit bind -framework ~/Desktop/DynamsoftBarcodeReader.framework -sdk iphoneos10.2 […]

没时间让初创公司的农民-四十年代的事情如何满足并建立千禧一代的社交平台

我和妻子于2008年离婚,就像任何38岁的离异夫妻一样,我是一个没有朋友的男人。 幸运的是,那时我是一名专业音乐家,并且在夜总会里度过了很多时间。 结果,我在酒吧遇到了大多数婚后好朋友,而且您可以猜到他们还年轻得多。 Facebook爆炸正在进行中,我的新千年朋友自大学以来就一直在使用FB。 我通过做所有错误的事情很快学到了东西,如果您在喝了一夜后检查了FB帖子,您就会明白我的意思。 在短短的几周内,我成为了一个毫无歉意的社交媒体迷。 同年,我在一家与Zippo,阿迪达斯和其他知名品牌合作的eComm公司工作。 在大多数设计师都渴望获得mgmt角色的时代,这使我能够提高自己的品牌技巧。 另一个好处是与天才兼职的Phil Pastorek会面并一起工作,他是我曾经与之合作过的最好的开发人员。 我们经常谈论起步理念,但从未发现任何东西可以帮助我们。 切入2016年。单身生活已成灾,现在该是恢复我的身体,思想和精神的时候了。 有了健康的睡眠,饮食和运动习惯,我的头脑开始因创造力而爆发,四月的一个晚上,我从一次沉睡中醒来,完全意识到了我们现在称为Hitcher的整个社交平台。 我充分利用了千禧一代,社交交流和大品牌的经验,并且知道自己在做某事。 经过3个星期的反复,Phil是我打来的第一个人。 他喜欢这个主意,并成为了我的第一位联合创始人,但我们俩都知道找到iOS开发人员是成败关键。 在接下来的三个月中,我参加了所有可以想象到的社交活动。 在我上次MeetUp召开三个小时后,我决定退出会议。 在我走楼的路上,我碰巧碰了碰我看到的最后一个女人,问道:“您是iOS开发人员在寻找创业公司吗?”她回答是。 那个人是梅丽娜·史瑞莎(Merina Shrestha),是加入我们抹布车队的第三个人。 在我们一直在祈祷的价值观和背景下,她被证明是一位了不起的开发人员,而命运却无法给我们带来更好的帮助。 我们三个人采取了行动,但我承担了太多的责任,觉得有必要克隆自己。 我需要一个从事过技术工作但可以戴上与我一样多的帽子的人。 我认识完美的人,这是我们的故事传遍整个故事的地方 。 2016年6月,我的前妻Priscia Chavarria接受了我的报价,并加入了我们的小公司。 作为全球最大的咨询公司之一的职业PMP和技术策略师,她非常适合。 这也是一个容易的决定,因为这些年来她仍然是我最好的朋友。 希切尔队终于完成了。 自从将最后的部分放在一起以来,这组由40多个对象组成的小组一直在一个真正令人惊叹的平台上执行和迭代,并且我们已经证明人们在产品和市场方面一直存在错误。 敏捷主义者可以继续质疑我们的能力,但是我们总是拥有年轻团队所没有的一件事-经验。 这是一个屡获殊荣的职业专家团队,我们正在执行任务。 我们将继续前进,直到我们在过程中耗尽激情或改变世界。 *广告中的真相-事实证明,菲尔(Phil)离40岁还差一点,可能会杀死我。 糟糕,抱歉。 此外,在最后一行中,我实际上引用了自己。 对不起,对不起。 花一点时间,了解有关 Hitcher的 更多信息 ,该产品可从2月16日在App Store上下载— www.hitcher.mobi 。

与fastlane和CircleCI的持续集成和交付

我们在Sixt希望分享我们为iOS应用程序进行持续集成和交付的方法。 在过去的一年中,改变我们制作CI和CD的方式对于我们的开发过程至关重要。 首先,让我们从我们的应用程序和团队的一些历史开始,以及如何影响我们对CI提供商的决定。 Sixt应用程序的第一版于2008年发布,我们的团队只有一名iOS开发人员。 那时,CI是没有必要的,并且所有操作都是手工完成的。 在将团队增加到3名成员之后,我们决定从CI开始使用Jenkins。 那时,这是合乎逻辑的决定。 Jenkins是免费的,我们可以将其托管在我们自己的硬件上,一次运行一个构建就可以了。 在2016年,我们决定迁移到TeamCity,并为我们的CI使用两个构建代理。 如今,我们的iOS团队由15位开发人员组成,他们构建了三个公共应用程序Sixt,DriveNow和MyDriver,以及多个内部应用程序。 随着最近几年的快速增长,出现了对新CI服务提供商的需求。 在此博客文章中,我们想分享我们当前的CI / CD管道。 CircleCi 从一开始就很明显,我们希望迁移到基于云的CI提供程序,因为我们自己的硬件的托管和维护花费了开发人员过多的时间。 对我们来说,两个最重要的指标是启动时间和并发性。 在比较了几个提供商之后,我们决定选择CircleCI,因为他们似乎非常满足我们的需求并且看起来已经足够成熟。 单击此链接开始使用CircleCI。 CI管道 现在到我们当前管道的实际外观有趣的部分。 我们正在使用fastlane运行所有脚本,CircleCI只是根据触发它的分支执行不同的通道。 以下是分支和通道如何连接的一般概述: 除了运行上述构建计划外,我们还将在每晚构建中运行整个测试套件。 这包括我们的单元以及UI测试。 在接下来的段落中,我们将完成项目的初始设置和代码签名,创建单个通道并在CirleCI上运行所有程序。 苹果开发者门户 首先,我们需要在门户中创建我们的应用程序标识符。 转到此页面并填写必要的信息。 每个构建配置都需要一个应用程序标识符。 对于此帖子,我们的基本捆绑包标识符是com.name.app,因此我们必须创建以下应用程序标识符: com.name.app com.name.app-dev com.name.app-alpha dev和alpha应用程序标识符是在我们的企业帐户中创建的。 允许在任何设备上部署。 快车道 如上所述,我们将使用fastlane运行脚本。 一个好的做法是使用Gemfile锁定依赖项。 在项目的根目录中创建一个Gemfile,并将fastlane添加为依赖项。 接下来,您将需要根据配置更改包标识符。 转到您的“应用程序目标”->“构建设置”,然后搜索“捆绑标识符”。 它看起来应该类似于: 配置代码签名的最后一步是更改签名设置。 转到常规标签,禁用“自动管理唱歌”,然后为每种配置选择正确的配置文件。 您应该在下拉列表中看到一个符合条件的配置文件。 我们的最终结果如下所示: 测试车道 下一步是创建用于运行我们的不同测试套件的通道。 我们有一条用于单元测试,UI测试的通道,并且可以运行所有通道。 记住要替换您的工作区和方案。 之后,进入项目设置并将用户部署密钥添加到项目非常重要。 这允许快速通道匹配来克隆我们的证书存储库。 再次在这里,我们建议您使用bot github帐户添加用户ssh密钥。 […]

FileMaker iOS App SDK变得简单

2018年3月-剪辑管理器,FM日历,PrinterSwitch,DoSQL,AutoSender的开发人员宣布myFMbutler Mobile App Builder立即可用。 关于移动App Builder 当FileMaker,Inc.推出FileMaker iOS App SDK时,它想简化FileMaker自定义应用程序在组织中的分发方式。 过去,FileMaker Go应用程序以及所有FileMaker文件和链接是分开分发的。 由于有了FileMaker iOS App SDK,您只需要分发一个包含完整FileMaker解决方案的应用程序即可。 因为使用FileMaker iOS App SDK需要对命令行指令和Xcode有充分的了解,所以这对于许多人来说可能是个问题。 多亏了myFMbutler Mobile App Builder,现在简化了整个应用程序构建过程。 现在,您无需打开Xcode就可以构建应用程序。 通过Mobile App Builder,您可以通过其易于使用的界面使用iOS App SDK创建和管理FileMaker移动自定义应用程序,而无需任何编程知识。 [ 下载Mobile App Builder ] 特征 为iOS创建本机移动自定义应用 建立内部和企业分布 为App Store构建 自动创建所有必需的应用程序图标 支持FileMaker iOS插件 重用和共享构建设置 系统要求 macOS 10.12或更高版本 Xcode 9 FileMaker iOS App SDK 16.0.x(需要FileMaker开发人员订阅) 苹果(企业)开发人员计划会员 […]

App Store 2018提示和清单

Apple的App Store在2017年9月启动iOS 11时进行了重大修改。多年来,移动设备上的App Store看起来相同,并提供功能和顶部图表部分,但现在所有这些都已更改。 苹果公司解释说,更改是为了使应用程序在App Store中更容易被发现。 用户可见的主要变化是: 1)没有收益图表。 2)应用程式和游戏有不同的热门排行榜。 3)新的“今日”部分与编辑人员故事一起手动策划。 4)在应用内购买的应用,作为单独的产品在App Store中进行。 UI的更改也着重于为用户提供更好的体验。 这些更改包括: 1)较短的应用名称和新的字幕字段。 2)自动播放视频预览。 3)用户在搜索中看到三个垂直屏幕截图(之前两个)或一个水平屏幕截图(之前一个半)。 4)由于评论已移至顶部,因此更加重视评论。 5)还有更多查看顶部图表的步骤,它会影响该部分的受欢迎程度。 在主要部分,免费和付费图表仅显示三个应用程序/游戏。 6)开发人员现在可以显示多达10个屏幕截图(以前只有5个),以向客户展示更多的应用程序体验。 那么如何从App Store 2018中获得最大收益呢? 从App Store Optimization(ASO)的角度来看,App开发人员应确保: 1)他们的应用标题受新应用名称限制(最多30个字符)。 现在无需使用关键字向应用标题发送垃圾邮件。 使其简洁明了。 2)应用程序元数据中使用了新的字幕字段。 使用应用字幕来吸引用户的号召性用语(例如,立即下载应用)。 它可以导致20%的下载量。 (来源,splitmetrics.com) 3)对于垂直屏幕截图文本,请使用较大的字体。 以前使用的任何字体大小都应该增加,因为即使在较大的iPhone X熨平板上也很难阅读文本。 4)添加新的Apple API来收集应用程序中的评论。 它将大大增加评论量(根据Apptentive最多可提高30%)。 现在,用户每年仅需3次即可进行应用审核,因此请明智地要求进行审核。 最好的时机是让用户体验到积极的情绪后再查看您的应用。 用户可能会在您的应用中获得任何形式的奖励或赢得级别之后。 当用户赢得胜利时,他们更有可能对您的应用进行正面评价。 5)填写新的促销文本字段。 它没有建立索引,但是是在应用程序中宣布交易或销售的好地方。 目前,应用程序描述页面在通过审核过程后不可编辑。 促销文字字段应用于以后可能发布的所有公告。 促销文字显示在应用程序描述文字的顶部,从用户角度看,它就像一个字段。 6)将所有丢失的元数据添加到应用内购买中,以使它们符合Apple的功能。 推广的应用程序内可见,可以通过App Store搜索或在应用程序页面上购买。 7)与以前的仅限屏幕截图版本相比,制作出色的预览视频并评估应用程序页面性能(通过iTunes Analytics)。 自动播放的视频可以为您的应用(尤其是游戏)获得更多下载。 […]