十大黄iso软件排行榜-草莓视app色板下载安装-秋葵视频app下载安装 用 SwiftUI 实现一个开源的 App Store

让建站和SEO变得简单

让不懂建站的用户快速建站,让会建站的提高建站效率!

你的位置:十大黄iso软件排行榜-草莓视app色板下载安装-秋葵视频app下载安装 > 十大黄iso软件排行榜 >

用 SwiftUI 实现一个开源的 App Store

发布日期:2022-07-13 12:01    点击次数:78

App Store 在 iOS 11 之前,App 排走榜不断是衡量开发者 App 活跃度的指标,但在 iOS 11 后苹果弱化了榜单功能,改为了二级入口,导致查询榜单可贵,编者经历深入调研最后实现了一个查看 App 榜单、搜索、讯歇、发布功效等昌盛功能的开源 App。

一、媒介

App Store 不断以来都是 iPhone 生态的最首要一环,在初代 iPhone 商店,由于 App 比较少,那时就有 Top 25 榜单:

然后在后续的 App Store 迭代中,排走榜(Top Charts)不断是一个首要的入口,新用户基本都会从榜单下载 App,因而,榜单的首要性不容歧视。

直到 2017 年,固然占了不到 30% 的手机份额,但 iPhone 的体量已经鲜嫩大,App Store 行使数目已经达到 220 万。App Store 的展示和选举,明晰已足不了每天壮大的新 App,有越来越众的 App 期看得到关注;而另一方面,排走榜刷榜题目不断存在;还有就是 App Store 的设计已经已足不了需求!比如更新(Updates) 标签功能单一,就是负责显露需求更新的 App 列外。

因而,从 iOS 11 开始,苹果将 AppStore 重新设计,加补了 Today 和 Games 玩耍标签入口,而排走榜列外放到了 Apps 标签的二级入口中。苹果深化了自身的编辑团队选举的App,在玩耍和行使标签分类的前哨也加入了大区域的编辑选举 App,此刻已经看不到榜单了。

而如今 iOS 15 中的 App Store 加补了更众的功能,比如产品页优化、自定产品页、App 内行动(In-App Events)等,主意很清晰就是让开发者加补活跃内容,升迁 App 日活和利润。

而排走榜功能,其实已经不但单是一个榜单的作用,反复这些年的沉淀,榜单基本已经舒服。比如内行看到的 App,常年不变,而冲到榜单的 App,会获得更众的下载量。对于开发者来说,榜单不妨用来展望行使利润、运用量和下载量的一个首要指标。对于用户来说,发现一些兴趣或者炎门的 App,依然是片面老用户的民风。

因而,编者期看经历实现一个 App Store 排走榜,方便不时查看,同时查看讯歇,搜索或行使发布状态订阅等功能,解决了鲜嫩众的痛点题目。

二、成绩展示

开首,吾们先来介绍一下,如今 iAppStore 实现了那些功能。

iAppStroe[1] 是一款运用 SwiftUI 打造的苹果商店工具类 App。

挑供苹果实时榜单查询,包含 iOS 和 iPad 的炎门免费榜、炎门付费榜、畅销榜,还有新上架榜、新上架免费榜、新上架付费榜等。

挑供查询 app 细密页面内容、搜索 app、订阅 app 状态等功能。

声援苹果一共国家和地区的商店,无需切换 Apple Id,即可查看!

2.1 排走榜

开首,App Store 的榜单有许众,包含 iOS 和 iPad 的炎门免费榜、炎门付费榜、畅销榜,还有新上架榜、新上架免费榜、新上架付费榜等,吾们都实现了这些榜单。另外,吾们将 App Store 榜单的 UI 还原,同时,也加补了更众的讯歇展示,比如 App 所属分类等。

最首要的是,吾们把一共国家和地区的商店,都集成在一个面板中,经历下拉列外选择,实现快速切换榜单。

2.2 App 细密页

App 细密页面,把开发者最关心的参数展如今最前哨。另外,复制包含或者 App ID 是一个高频的需求,App 描述和更新方案也高仿了 App Store 的成绩。预览区包含 iPhone 和 iPad 图片。点击不妨显露大图,并且不妨下载和分享大图。

2.3 搜索

搜索区,不妨输入关键字暧昧搜索,或者 App ID 精准搜索。另外,在右上角切换国家和地区,显露分歧地区的 App 搜索。

2.4 行使状态订阅

这个状态订阅是什么意思?就是不妨监听 App 在商店的状态,举例来说,App 发布了新版本,那么或许要众久才能在商店上显露呢?因而,吾们不妨经历苹果的接口,来守时的查询 App 的状态,从而明晰 App 什么时候功效。还有新 App 刚刚发布时、或者 App 需求下架了,什么时候才从商店湮灭等。

2.5 其它

为了方便开发者运用,App 列外长依时,会弹出操作列外,不妨已经复制 App 的讯歇或者快速掀开 App Store 产品页,尽可能的敏捷获取内容!另外,还声援黑黑模式,依然精美绝伦!切换图标不妨选择自身显露的图标等。

内行想要什么功能,不妨在评论区留言啊~

三、调研办事

接下来,吾们说一下要实现以上功能,需求的 API 怎么调研出来的!经历大量的网页检索,最后测试后清算成有价值的列外:

3.1 榜单接口

查询排走榜的 API 示例

以上内容在苹果公开的文档,都别国查询到 API 文档。但为苹果网站到在一个页面: Apple Services Performance Partners[6],其中一项服务叫:Enterprise Partner Feed Relational[7](企业讯歇流协和朋侪?),如今这个协和相似很难申请到。因而,关联的文档链接都无法访问到,比如 affiliate.itunes.apple.com[8]。

那么以上链接中几个参数类型,由于别国文档,因而调研梳理如下:

榜单类型

行使分类

更众分类,参考苹果网站的 HTML 标签:App Store[9]

国家或地区标识

更众分类标识,参考苹果网站的 HTML 标签:RSS Builder[10]

接口证明

原本接口挑供 200 条数据查询,但 20221 年 9 月 2 日,苹果接口调整后,大幅裁减 App Store 行使排走数据分享,从 1500 名降至 200 名。如今 AppStore 总榜、行使、玩耍榜、分类榜只能查看前 200 个 App 的数据。

3.2 搜索接口

App 搜索接口比如灵活,并且有官方文档:

iTunes Store API[11] iTunes Search API: Constructing Searches[12]

接口示例:

https://itunes.apple.com/search?term=斗罗大陆&country=cn&limit=200&entity=software

term 字段就是关键词,country 字段是国家或地区的标签,跟上面的榜单接口是统一个。entity=software 固定为搜索柔件就益。细密的运用,不妨参考官方文档,这儿就不伸开了。

3.3 App 细密讯歇

查询某个 App 不妨运用 lookup 接口,详明不妨查看官网文档:Lookup Examples[13]。

接口示例:

https://itunes.apple.com/cn/lookup?id=1558453472

3.4 App 评论内容

查询某个 App 的用户评论内容,别国在苹果的文档中找到,但是顺从以上的调研,接口运用题目不大。

接口示例:

https://itunes.apple.com/cn/rss/customerreviews/id=989673964/sortBy=mostRecent/json

地区、App Id、sortBy 字段,就不妨搜索。伪设需求分页或者获取更众,不妨参考文末的链接。

四、开发思路

有了以上的 API 接口,就能实现吾们的 App,云云运用 SwiftUI 来构建,现已开源:

iAppStore - GitHub[14]

细密的实践过程就不在云云讲解了,由于 App 是工具类行使,交互的内容不众,因而并不是很复杂。天然,运用 SwiftUI 构建 UI 过程反常的快速,但是伪设要调整 UI 细节,确定需求花许众心绪。比如,SwiftUI 还不声援 WebView,因而用 SFSafariViewController 桥接的 View 在 SwiftUI 组件中显露会反常。

How do I use SFSafariViewController with SwiftUI? - Stack Overflow[15]

另外,就是苹果 API 的坑,接口返回的字段 im:id、im:bundleId,包含冒号,让人思疑人生!末尾,经历自定义键值名,解决知道析映射的题目。细密,不妨参考源代码中 AppRank.swift[16] 类。

struct IDAttributes: Codable {     let imBundleID, imID: String          // 自定义键值名      enum CodingKeys: String, CodingKey {         case imID = "im:id"         case imBundleID = "im:bundleId"     } } 

综上,伪设是幼吾私家开发的 App,不妨开始运用 SwiftUI 来开发,毕竟原生的体验和原生的组件,用户首来也很欢欣。另外,不考虑声援矮版本编制,运用 SF Symbols[17] 挑供的图标,也鲜嫩的友益!

五、总结

iAppStore 从构思到实现,花了半个月的时间,期间调研接口和调试接口花了许众时间,网上依然看到许众人问这些接口,置信许众开发者都不明晰有这些接口,因而本文也算是一个应案总结,期看这个题目从此湮灭哈~ 末尾,iAppStore 只是从编者需求来实现的一个产品,因而必然存在许众的题目,但同时它是一个开源项目,因而,伪设内行兴趣味,一首来参与,加补更众兴趣或者黑科技的体验吧!接待内行有任何思维或者提出,不妨在评论区给吾们逆馈。也不妨到 iAppStore - GitHub[18] 给吾们 Star 鼓励!感谢内行~

参考质料

[1] iAppStroe:

https://github.com/37iOS/iAppStore-SwiftUI

[2] RSS Builder: https://rss.applemarketingtools.com

[3] RSS Information:

https://www.apple.com/rss/

[4] Stack Overflow:

https://stackoverflow.com/questions/29997991/how-to-get-top-400-lists-from-itunes

[5] 链接:

https://www.kalman03.com/2015/05/04/tech/appstore_affiliates_resource/

[6] Apple Services Performance Partners:

https://affiliate.itunes.apple.com/resources/

[7] Enterprise Partner Feed Relational:

https://affiliate.itunes.apple.com/resources/documentation/itunes-enterprise-partner-feed/

[8] affiliate.itunes.apple.com:

https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api.html

[9] App Store:

https://apps.apple.com/cn/genre/ios/id36

[10] RSS Builder:

https://rss.applemarketingtools.com/

[11] iTunes Store API:

https://affiliate.itunes.apple.com/resources/documentation/itunes-store-web-service-search-api/

[12] iTunes Search API:

Constructing Searches: https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/Searching.html#//apple_ref/doc/uid/TP40017632-CH5-SW1

[13] Lookup Examples:

https://developer.apple.com/library/archive/documentation/AudioVideo/Conceptual/iTuneSearchAPI/LookupExamples.html#//apple_ref/doc/uid/TP40017632-CH7-SW1

[14] iAppStore - GitHub:

https://github.com/37iOS/iAppStore-SwiftUI

[15] How do I use SFSafariViewController with SwiftUI? - Stack Overflow:

https://stackoverflow.com/questions/56518029/how-do-i-use-sfsafariviewcontroller-with-swiftui

[16] AppRank.swift:

https://github.com/37iOS/iAppStore-SwiftUI/blob/main/iAppStore/Models/AppRank.swift

[17] SF Symbols:

https://developer.apple.com/sf-symbols/

[18] iAppStore - GitHub:

https://github.com/37iOS/iAppStore-SwiftUI

 



友情链接:

TOP