#139 Swift iOS App 模擬面試: random user

開發 iOS App 時,我們最擔心的莫過於沒有使用者。沒關係,透過 Random User Generator,我們可以產生隨機的 user,一秒鐘就可以生出 500 個 user 。

以下是這次模擬面試的功能需求,歡迎有興趣的朋友參考。

基本功能需求

  • 搭配取得單一 user 的 API
https://randomuser.me/api/
  • 印出 first name, last name, street number, street name。
  • 資料尚未抓到時顯示 UIActivityIndicatorView。
  • 點選 button 隨機 user,將 first name, last name, street number, street name 顯示在 App 畫面。
  • 使用 SwiftUI 或 UIKit 製作畫面,UIKit 版本須搭配 auto layout。
  • 顯示 large 的圖片。

進階功能需求

  • 隨機 user 清單,照字母順序排序。

搭配以下 API 顯示 user 清單,至少顯示 user 的名字,性別,年紀和大頭照。

https://randomuser.me/api/?results=20

SwiftUI 版本: 使用 List 或 LazyVGrid。

UIKit 版本: 使用 table view 或 collection view。

  • 點選 cell 後進入下一頁,顯示 user 詳細資料。

SwiftUI 版本: 使用 NavigationView。

UIKit 版本: 使用 UINavigationController。

  • 網路有問題,抓不到資料時用 alert 顯示錯誤。
  • 下拉更新功能。

下拉更新後將顯示新的 user 清單。

  • search 功能。

在隨機 user 清單頁面加入 search 功能,比方 user 清單原本有 20 個名字,輸入 andy 後將顯示其中叫 andy 的 user 清單。

  • 分頁功能。

搭配以下 API,滑到底時抓取下一頁的 user 清單顯示。

https://randomuser.me/api/?page=3&results=10&seed=abc
  • 收藏功能。
  1. 收藏喜歡的 user,之後也可取消收藏。
  2. 存在 App 裡,下次啟動 App 時可看到收藏的 user 清單。
  3. 搭配 tab bar,第一個 tab 顯示隨機 user 清單,第二個 tab 顯示收藏的 user 清單。

SwiftUI 版本: 使用 TabView。

UIKit 版本: 使用 UITabBarController。

  • 地圖功能。

點選使用者的地址後顯示地圖,在地圖上標記使用者的位置。

作品集

--

--

彼得潘的 iOS App Neverland
彼得潘的 100 道 Swift iOS App 謎題

彼得潘的iOS App程式設計入門,文組生的iOS App程式設計入門講師,彼得潘的 Swift 程式設計入門,App程式設計入門作者,http://apppeterpan.strikingly.com