Tag: 移动应用程序开发

使用PDFKit渲染PDF文档

对于开发人员而言,在移动应用程序中集成PDF呈现功能始终是一项艰巨的任务。 无论是Android还是iOS,开发人员通常更喜欢使用第三方库或本机c / c ++ /低级代码来呈现pdf文档。 好消息来了! 苹果最近在iOS 11中添加了PDFKit框架,这使得PDF渲染变得非常容易。 在本文中,我将重点介绍PDFKit中可用的两个最常用的功能。 呈现PDF文档。 创建指定文档页面的缩略图预览 PDF渲染 注意。 在自定义类字段中键入PDFView时,没有自动补全功能。 让我们了解一下我们可以在PDFView上应用哪些属性。 PDFDisplayMode 您可以使用框架中提供的4种displayModes中的任何一种 singlePage:仅显示1个具有滚动支持的页面。 singlePageContinuous:显示带有滚动条支持的整个PDF文档,以在多个页面之间滚动。 twoUp:滚动条支持并排显示两个页面。 twoUpContinuous:并排显示具有2页的整个pdf文档。 2. PDFDisplayDirection 提供两种滚动模式,即垂直和水平。 垂直:在页面之间垂直滚动。 horizo​​ntal :启用页面之间的水平滚动。 3. autoScales = true :以下是来自Apple开发人员文档的摘录。 //对于连续模式,这是“适合宽度”行为,对于非连续模式,这是“最佳适合”行为。 4. 提供文件网址 let path = Bundle.main.path(forResource:“ MFI_2018_01”,ofType:“ pdf”) 让url = URL(fileURLWithPath:path) 让pdfDocument = PDFDocument(url:url) pdfView.document = pdfDocument 加载文档缩略图 通常,我们遇到要求时,我们只需要显示PDF文档中的特定页面缩略图即可。 从实现的角度来看,这听起来还是很吓人的,但是PDFKit使其非常简单🙂 创建PDFDocument对象。 […]

扩展那些本机类!

正如我在上一篇关于全局可用函数的文章中提到的那样,有时我们不需要编写一个函数。 我们可以扩展本机类以从中获取更多信息。 如果您不了解iOS Swift扩展,请在此处了解它们。 扩展的主要优势也许,至少对我而言是…… iOS扩展也可以扩展本机类 因此,如果您需要现有组件/元素的额外功能或扩展本机类的功能,则只需为其编写一个扩展。 它可以驻留在应用程序中存在的任何文件中。 声明扩展名后,您可以将它们用作所有扩展类的函数。 让我们从一些示例开始,以阐明我的观点。 假设我们需要带下划线的标签。 将此粘贴到您的代码中的任何位置。 现在,我们的UILabel类具有一个名为下划线的新功能,可在整个应用程序中使用。 假设我们有一个类似下面的标签, 我们可以通过添加以下行来使用下划线类, label.underline() 扩展了UIKit的基本UILabel类后,我们的下划线功能可用于UILabel类或UILabel扩展的每个组件! 所以我们的实现看起来像这样, 这是一个非常基本的例子。 但是它也可能非常非常强大! 让我们看另一个例子,一个更原始的格式化方式,但仍然是必需的。 每当需要大量显示时,都需要用逗号格式化整数。 如果我们要在项目中以逗号格式格式化任何整数,则可以添加一个扩展本机Int类的附加函数,如下所示: 现在,我们可以像下面在代码中所需要的任何地方那样利用它。 让量= 1000000000 打印(“逗号格式:\(amount.withCommas())”) //返回“逗号格式:1,000,000,000” 那不方便吗? 现在,如果是货币金额怎么办? iOS专用于此用例的格式化程序。 我们可以将NumberFormatter类和扩展名一起使用,以在全局范围内使用此格式化程序,就像我们编写扩展Int类的逗号分隔符功能一样。 让我们定义另一个扩展,但是为此,我们将扩展Double类,因为无论如何货币最有可能是double类型! 现在,就像下面和中提琴一样使用它! print(amountDbl.currencyString()??“”) //返回“ $ 1,000,000,000.00” 当然,您可以覆盖语言环境以获得其他格式的货币。 为此,我们将不得不稍微重写一下我们的函数。 首先,我们需要将语言环境字符串作为函数参数。 我们将改变这一点, formatter.locale = Locale.current 进入这个 formatter.locale =语言环境(标识符:someString) 在这里,占位符someString将替换为我之前告诉您的区域设置字符串参数。 因此,我们更改后的功能现在应该看起来像这样, 现在,如果我们使用它,它将以您指定的语言环境返回格式化的数量字符串。 print(amountDbl.currencyString(locale:“ en_IN”)??“”) //返回“₹1,00,00,00,000.00” print(amountDbl.currencyString(locale:“ […]

Xcode:设置没有情节提要的应用

编写应用程序时不使用故事板的原因有很多,其中包括遇到版本控制问题,必须在Xcode的UI中进行大量导航以设置您的视图,或者仅仅是故事板在与流程分离时离过程如此之远事情变得复杂。 而且,您无需进行大量研究即可发现开发人员是在不遵循情节提要模型进行开发的情况下,以编程方式构建视图或创建自定义Xib。 要消除新项目中的那些讨厌的故事板,请执行以下操作: 重新开始。 在Xcode中创建一个新项目。 在本演练中,我启动了一个1页的应用程序。 对于一页应用程序,您的项目结构应如下所示: 3.您的AppDelegate文件应如下所示: 4.在applicationDidFinishLaunchingWithOptions函数中,我们将添加三行: func application(_ application:UIApplication,didFinishLaunchingWithOptions launchOptions:[UIApplication,LaunchOptionsKey:Any]?)->布尔{ 窗口= UIWindow(框架:UIScreen.main.bounds) 窗口?.makeKeyAndVisible() window?.rootViewController = UINavigationController(rootViewController:ViewController()) 返回真 } 细目如下: 一种。 我们正在手动分配在AppDelegate文件顶部定义的window对象,并为其提供一个适合主屏幕边界的框架。 这是显示我们应用内容的主窗口。 b。 我们正在使用makeKeyAndVisible便捷方法将窗口设为应用程序的当前窗口。 C。 我们将窗口的rootViewController属性设置为UINavigationController的新实例,该实例传递了ViewController的新实例。 请注意,此ViewController是我们在设置项目时定义的ViewController的实例。 所以现在我们可以进入ViewController了,为了在启动应用程序时看上去比黑屏更漂亮,我们可以更改背景色或其他内容: 导入 UIKit 类 ViewController:UIViewController { 覆盖 func viewDidLoad(){ 超级 .viewDidLoad() //加载视图后进行其他任何设置,通常是从笔尖进行。 view.backgroundColor = .red } } 瞧! 启动应用程序,您应该看到红色的UIViewController。 当您开始谈论Main.storyboard或“ Main”时,您可能会看到一些错误或警告。 如果看到这些内容,可以尝试在“项目”视图中删除此处的“主要”清单。 这将删除它可能正在查找的Main.storyboard引用。 此时,您甚至可以从项目中删除Main.storyboard文件。

适用于iOS应用程序开发人员的交互式游乐场

Xcode Playground是一个IDE,可为iPhone和iPad设备开发应用程序。 Playground最初是由Swift发行的,旨在成为一个进行代码实验的地方。 它提供了已开发代码和布局的交互式预览,而无需使用Interface Builder。 通过提供实时代码结果,Playground成为顶级ios开发人员的最爱,可以逐行“查看”您的代码在做什么。 如果您愿意避免创建Xcode项目的麻烦和精神开销,并且不必处理众多因素,例如设备类型和分辨率以及构建设置。 可以使用操场先决定是否继续执行核心思想来推迟此类决策。 为了使用Xcode Playground,您需要晚于Xcode 6安装最新的Xcode版本。安装该软件后,下面的屏幕将显示第一个选项,即“游乐场入门”,然后选择该选项到下一个屏幕以命名游乐场,将Platform设置为iOS ,然后保存游乐场。 好吧,这是在您开始使用Xcode之前的介绍,以下是在Xcode中构建应用程序时要参考的一些常用术语: UIKit是Apple的用户界面工具包。 它包含用于在整个应用程序中推动用户交互的项。 UI项示例包括按钮,文本框,导航控件等。 AppKit是Apple用于macOS的用户界面工具包。 像UIKit一样,它包含按钮,文本框等内容,尽管关注的是macOS而非iOS。 WatchKit是Apple用于watchOS的用户界面工具包。 尽管UIKit和AppKit有很多共同点,但WatchKit却大不相同-并且明显更简单。 Cocoa Touch是Apple广泛的iOS框架集合的常用名称。 它包括用于执行用户界面的UIKit,但是大多数人会说它还包括用于制作2D游戏的SpriteKit,用于制作3D游戏的SceneKit,用于地图的MapKit,用于绘图的Core Graphics,用于动画处理的Core Animation,等等。 Cocoa是用于macOS上的Apple框架集合的名称。 严格来说,它由用于用户界面的AppKit,用于基本功能的Foundation和用于对象图的Core Data组成,但是像Cocoa Touch一样,它通常表示“所有macOS开发”。 NeXTSTEP是由Steve Jobs创建的一家名为NeXT的公司创建的操作系统。 它被苹果公司收购,乔布斯又被公司控制,并将NeXTSTEP技术直接纳入苹果公司开发平台的核心。 iOS Simulator是Xcode附带的工具,其外观和工作原理几乎与真实的iPhone或iPad一样。 它使您无需使用真实设备即可非常快速地测试iOS应用。 游乐场的局限性 游乐场不能用于性能测试。 不支持用户交互。 不支持设备上执行。 无法使用您的应用或框架代码。 不支持自定义权利。 Xcode团队似乎致力于改善操场,因为集成了最新框架和库的新版IDE推出了。 以上只是在微型Swift测试环境中的漫步,您可以键入代码并立即查看结果。 要构建iOS应用,请与最佳应用开发者联系。

我整天在终端中使用哪些命令?

更新:2019年4月7日 每天我都会使用很多不同的工具。 您知道我的意思,您已经阅读了26K,非常感谢。 ☺️ 现在,我想分享我用来改善工作,提交等的命令。。。没有大的标题标签,只有命令和好处。 让我们开始吧。 $ cloc。 cloc计算项目源代码的空行,注释行和物理行。 使用此命令,可以安装它。 brew install cloc $ xcversion selected 通过此命令,我可以轻松地自动安装和更新新的或以前的Xcode。 如果您正在使用Swift 3-> Swift 4或Swift 2-> Swift 3的转换(请相信我仍然有很多Swift 2项目),您可以轻松下载所需的任何内容。 Github链接 $ xclint MyProject.xcodeproj xclint是用Swift编写的命令行工具,用于验证Xcode项目的状态。 它能够查找重复和丢失的文件,组与系统中的文件夹之间的不一致。 它不仅仅是更好的Slender。 Github链接 $ dark-mode on or dark-mode on or $ dark-mode off 我可以从命令行轻松管理macOS暗模式。 Github链接 $ git commit –amend -m “New message” 如果我需要在推送后更改提交标题。 我在上面使用这种方法。 Github链接 […]

移动解决方案? 为什么我们作为客户需要比较和选择合适的平台

移动应用程序是当今重要的内容交付渠道之一。 该平台可以轻松地将企业和客户联系起来,进行销售,宣布,询问和购买。 在最近几年中,智能手机的使用量激增,尤其是苹果和Android手机。 随后,企业被迫为最终用户构建自己的移动应用程序。 有很多方法可以构建移动应用程序并通过移动设备传递内容。 原生移动应用 这些是可以在用户的​​移动设备上运行的应用程序,它可以在Apple的iOS设备或Android设备上运行。 该应用程序可在特定平台(例如iOS,Android和Windows)上运行。 这些应用程序可能满足b2b或b2c的特定需求,并且种类繁多,例如银行应用程序,社交网络,阅读新闻或购物。 这些平台一直在不断改进,并在用户界面设计,用户体验控件,电池消耗相关控件,节能器,高性能和可伸缩性方面做出了改进。 旨在在本机设备中运行,它们看起来和性能更好。 缺点是,如果您希望在多个平台上构建和启动应用程序,则需要从每个平台的设计和开发角度重新开始。 我们在EphronTech掌握了创建两端应用程序-b2b和b2c类别的技巧。 我们的设计师,开发人员和建筑师经过培训,精通应用最新技术来满足客户需求。 苹果 iOS是Apple的本机操作系统。 它们是使用旧版Objective-C和现在称为Swift的较新语言构建的。 苹果在2014年推出了Swift,这是一种更简单的语言。 它不仅易于学习,而且设计得很快。 根据苹果公司的网站,Swift的速度比Objective-C快2.6倍。 苹果提供Xcode,这是开发人员用来创建本机iOS应用程序的集成开发环境。 安卓 如果您要创建Android应用,则开发人员将使用Java进行构建。 它的学习曲线较低,因此找到成熟的开发人员并不是那么困难。 Android Studio是用于开发Android应用程序的正式集成开发环境,尽管传统上开发人员一直在使用Eclipse。 它再次提供了出色的用户体验。 Android是不同于iOS的开放源代码平台,它已成为诸如三星(抢先采用者),联想,HTC,华为,松下等手机制造公司最受欢迎的平台。 这些公司的综合运营实力不断为iPhone制造商带来不眠之夜。 苹果公司在道德上与之抗衡,这是一场不平衡的竞争。 视窗 Windows Phone在市场规模方面排在第三位,但是它正在由软件巨头Microsoft掌控,如果您要构建企业应用程序,则可能值得考虑。 Windows Phone应用是使用C#或VB.NET语言制作的。 微软的Visual Studio提供了强大的集成开发环境。 它可能是三个主要本地平台中对开发人员最友好的。 可能或可能发生的最大事情是,在不久的将来,越来越多的企业移动解决方案可能会出现在Windows上,这仅仅是因为正在运行的业务机构并依赖Microsoft技术和服务。 微软已经明智地意识到了为其客户提供有效的移动解决方案的必要性,并已在适当的时候推出了Windows移动平台。 最大的优势是可以与Dynamics,AX,Sharepoint和SaaS(Windows Azure)等其他Microsoft服务紧密集成。 混合移动应用 混合移动应用程序是本机和浏览器运行的Web元素的组合。 它可以安装在设备上并通过网络浏览器运行。 它们是使用HTML5语言构建的。 最初,HTML5得到了包括Facebook,LinkedIn和《金融时报》在内的许多领先互联网领域的采用。 在2012年,它似乎是移动设备的未来。 但是,在2013年,所有这些公司(《金融时报》除外)都停止使用HTML5应用并构建新的本机应用,即使它或多或少需要从头开始。 原因? 用户体验不如本机应用程序那么好,快速,可靠或流畅。 对于Facebook来说,这是一个大问题,因为Facebook上有大量图片正在实时下载和显示。 鉴于内容更改的发生频率不及Facebook HTML5应用程序,因此金融时报继续使用。 关于混合应用程序的未来一直存在争论。 […]

iOS:使用服务器中的图像

如果您是移动应用程序开发人员,则有时需要与后端进行交互。 您可能需要执行的任务之一是从服务器检索并显示图像,或将图像提交到该服务器。 提交图像时应使用哪种格式? 您如何将从服务调用中收到的字节转换为图像? 让我们构建从服务器到iOS App的整个堆栈,以了解操作方法。 设置一个后端 我们将首先构建一个Kitura服务器,该服务器提供RESTful API来完成两件事: 从客户端接收图像 提供接收到客户端的最新图像 我已经把完成的服务器放在我的Github上了 。 创建服务器项目 创建一个目录,并初始化一个新的可执行Swift包。 mkdir mkdir SwiftImageServer && cd SwiftImageServer swift package init –type可执行文件 编辑您的Package.swift文件,以指定您需要Kitura软件包。 导入PackageDescription 让package = Package( 名称:“ SwiftImageServer”, 依赖项:[ .Package(URL:“ https://github.com/IBM-Swift/Kitura.git”,majorVersion:1 ) ]) 您可以运行swift package fetch并且应该看到SwiftPM克隆Kitura及其所需的一切。 使用swift package generate-xcodeproj ,让我们开始编码! 创建一个Kitura服务器 后端将非常简单,因此我们将在main.swift 。 让我们从添加所需的所有样板开始: 进口Kitura import Foundation //创建一个可用于创建REST端点的路由器 let router = […]