Skip to content

akidon0000/ios-engineer-codecheck

Repository files navigation

株式会社ゆめみ iOS エンジニアコードチェック課題

概要

本リポジトリは株式会社ゆめみのiOS エンジニアコードチェック課題です。

環境

  • IDE:Xcode 12.5
  • Swift:Swift 5.4
  • 開発ターゲット:iOS 13
  • ライブラリー
    • R.swift var(5.4.0)
    • Alamofire var(4.9.1)
    • MarkdownView var(1.8.3)

課題

issue2(ソースコードの可読性の向上)

  • 変数名をキャメルケースに修正
  • クラス名をわかりやすい名前に修正
  • 配列の名前を単数系から複数形に修正
  • 空白、インデント、スペース、改行を修正

issue3(ソースコードの安全性の向上)

  • 強制アンラップに対してnilが入る場合は「if let」や「guard let」で安全にアンラップ
  • グローバル変数にする必要がない場合は極力ローカル変数を使用した

issue4(バグを修正)

  • レイアウトの修正
  • パースのエラーにはエラーハンドリングを追加
  • API通信時、完了後もメモリーが解放されていなかった為、finishTasksAndInvalidateを使用し解消

issue5(Fat VC の回避)

  • StoryboardをDetailView(リポジトリ詳細画面)とSearchView(リポジトリ検索画面)に分割
  • R.Swiftを導入し、タイポミスを減らした

issue6(プログラム構造をリファクタリング)

  • DataModelをViewと分離させた
  • APIの処理を行うクラスを作成

issue7(アーキテクチャを適用)

  • MVVMを採用

issue8(UI をブラッシュアップ)

  • カスタムセル作成
  • 通信中のインジケーターを追加

issue9(新機能を追加)

  • READMEを表示(未完成)

issue10(テストを追加)

  • 簡単な単体テスト実装

その他

  • URLをエンコード
  • Icon画像の非同期ダウンロード

今後やりたいこと

  • README表示の不具合(リポジトリによってREADMEのファイル名前が異なる為、うまく表示できていない)
  • DetailViewのUIブラッシュアップ
  • APIの通信で最初に不必要なデータも取得している為、用途にあったAPIを使用
  • LanguageIconのColorを作成(現在はSwift「赤色」とPython「青色」のみ)
  • 横画面への対応(現時点は横画面でも回転させない)
  • ダークモードに対応(現時点は強制ライトモード)
  • 十分な単体試験と結合試験を実施

About

株式会社ゆめみ iOS エンジニアコードチェック課題

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published