一个功能性 iOS 应用程序,可与 REST API 进行交互,检索照片数据

logo

皮克西

此项目展示了我在构建与 REST API 进行交互、检索照片数据并包含各种功能(如查看、筛选和探索照片相册)的功能性 iOS 应用程序方面的技能。

在皮克西中,我创建了一个从 REST API 终结点获取照片数据的 iOS 应用程序。该应用程序的核心功能包括显示照片相册列表,允许用户浏览相册,在不同布局之间切换,并详细查看各个照片。它还提供了复制照片 URL 的选项,并提供了无缝的用户体验。

功能

  • 该应用程序提供友好用户界面的照片相册列表,提供关键相册信息。
  • 用户可以方便地浏览相册并在列表和网格布局之间切换,以满足他们的喜好。
  • 每个相册可以展开来查看各个照片并在其中导航。
  • 用户可以复制照片的 URL 以共享或保存它。
  • 该应用程序提供流畅且响应迅速的用户界面,以获得愉悦的照片浏览体验。
  • 它展示了 Swift、SwiftUI 和异步编程在 iOS 开发中的最佳实践。
  • 还包含一些简单的单元测试。

要求

要运行此应用程序,您需要以下内容:

  • iOS 16
  • 稳定的网络连接

技术栈

  • SwiftUI 和 UIKit

未来功能构想

虽然皮克西目前展示了基本功能,但未来增强和功能构想中存在令人兴奋的可能性:

  1. 可自定义的网格视图行:类似于 Apple 照片应用程序中的捏合缩放功能的实现,可以允许用户根据自己的喜好调整网格视图中显示的行数。

  2. 改进的照片源:考虑探索和集成更广泛且多样的照片 API,为用户提供更广泛的真实照片以供探索和欣赏。

  3. 增强的用户互动:通过在列表/网格视图中的图像上添加上下文菜单或长按手势来增强用户互动,启用“预览和弹出”等功能以提供快速预览或操作。

这些只是为潜在的未来改进考虑的一些想法。

思考

做得好的地方

  1. 模块化和流程:该应用程序的模块化体系结构和流程已经过有效设计,使其易于理解和维护。这种模块化方法增强了可扩展性和代码组织。

  2. 布局灵活性:在列表视图和网格视图之间切换的能力为用户提供了探索和与照片相册交互的灵活性。

改进领域

  1. 数据加载在此演示应用程序中,我一次从 JSON API 获取所有数据(5000 个项目),以确保简单性和清晰性。然而,在生产应用程序中,建议实现更有效的数据加载策略,例如分页或延迟加载,以尽量减少不必要的开销并提高性能。这些策略有助于确保更流畅的用户体验,尤其是在处理大型数据时。

  2. 图像缓存和第三方库:虽然该应用程序最初使用 Apple 的 AsyncImage 进行图像加载,但它在缓存和占位符显示方面遇到了局限性,导致开发了 CachedAsyncImage。这种体验突出了选择正确图像处理方法的重要性。在未来的迭代中,考虑集成第三方库(如 KingFisher 或 Nuke)可以进一步改进图像缓存、渲染和整体图像处理,以获得更流畅的用户体验。

截图

屏幕 屏幕
IMG_0625 IMG_0626
IMG_0627 IMG_0628
IMG_0629 IMG_0630
IMG_0631

GitHub

点击跳转