Giter Club home page Giter Club logo

fumiyasac / meals_2nd_ios_ui_recipe_showcase Goto Github PK

View Code? Open in Web Editor NEW
3.0 2.0 1.0 43.96 MB

iOSアプリ開発 - UI実装であると嬉しいレシピブックおもしろ編掲載サンプル

Home Page: https://booth.pm/ja/items/2360379

Swift 99.72% Objective-C 0.15% Ruby 0.12%
swift uicollectionview uicollectionviewlayout uicollectionviewflowlayout customtransition animation passcodelock faceid-authentication touchid-authentication swiftui

meals_2nd_ios_ui_recipe_showcase's Introduction

iOSアプリ開発 - UI実装であると嬉しいレシピブックおもしろ編に掲載するサンプル

1. 概要

こちらは、上記書籍にて紹介しているサンプルを収録したリポジトリになります。書籍内で解説の際に利用したサンプルコードの完成版のプロジェクトがそれぞれの章毎にありますので、書籍内の解説をより詳細に理解する際や開発中のアプリにおける実装時の参考等にご活用頂ければ嬉しく思います。

2022.07.16時点での収録サンプルのリポジトリに関しては下記のバージョンで実装したものになっております。

  • macOS Monterey 12.4
  • Xcode 13.4.1
  • Swift 5.6
  • CocoaPods 1.10.1

これまでの書籍ではUI実装のアイデアや具体的な手法についてフォーカスを当てた書籍を3冊執筆してきましたが、急遽Vol.3の前段として更に番外編として表現や動きが特徴的でかつ、ユーザーにもほんの少しだけ遊び心を与えるような楽しい感覚を抱かせてくれるようなUI実装に関する解説を「おもしろ編(番外編Vol.2)」として簡単でありますがまとめたものになります。Chapter1及びChapter2で紹介しているサンプル実装についてはUIKitをベースに構築したサンプルとなっていますが、Chapter3ではiOS13から登場したSwiftUIを利用して構築したサンプルとなっております。

これまでの実務の中で培ってきた知識や知見に加えて、一般的なiOSアプリに対しては利用可能なケースは限られてしまうかもしれませんが、アニメーションやインタラクションにひと工夫を加えることによって、見た目にも美しく触っていて思わず楽しくなりそうな感じのUI実装に関するサンプルを3点収録しております。

プロジェクトを動作させるための事前準備:

サンプルコードでは、ライブラリの管理ツールで第2章はCocoaPods・第3章ではSwift Package Managerを利用しております。

CocoaPodsのインストール方法や基本的な活用方法につきましては下記のリンク等を参考にすると良いかと思います。

Swift Package Managerの基本的な活用方法につきましては下記のリンク等を参考にすると良いかと思います。

2. サンプル図解

こちらはの書籍で紹介しているサンプルにおける概略図になります。

⭐️第1章サンプル

本章では画面間の遷移をシームレスな感じで移動するような感じを演出するフォトギャラリーの様な表現について解説をしていきます。 カスタムトランジションを利用した画面遷移時において、遷移元と遷移先の情報をそれぞれ利用する必要がある点や、PanGestureRecognizerを利用した指の動きと連動したインタラクティブに画面を閉じる振る舞いを実現する形を実現する点やUIColllectionViewのレイアウトをカスタマイズして複雑なレイアウトを活用した複雑なレイアウトを構築する点に難しさがあるUI実装ではありますが、この部分の実装を上手に利用することによって様々なレイアウト表現に活用できるのではないかと思います。

第1章サンプル図

️⭐️第2章サンプル

本章ではヘルスケアや健康管理アプリや金融関係のアプリでも用いられる画面のTouchIDやFaceIDとも連携した画面のパスコードロック機能と自前での実装が少し手間がかかる表現について便利なライブラリを活用したUI実装を組み合わせた形の表現について解説をしていきます。 アプリがバックグラウンドに移行するタイミングで現在表示している画面上にパスコードロック画面をかける処理をSceneDelegate(AppDelegate)のライフサイクルメソッドを上手に利用することで実現する手法やパスコード入力時の細かなアニメーションやインタラクションをうまく加えるポイントや、ライブラリを上手に活用したUI実装等の点はヒントになるのではないかと思います。

第2章サンプル図

利用しているライブラリ一覧:

Podfileの記載:

target 'PasscodeLockLayout' do
  use_frameworks!

  # Pods for PasscodeLockLayout
  # UI表現の際に利用するライブラリ
  pod 'SwipeCellKit'
  pod 'PanModal'
end

ライブラリのインストール手順:

# 今回利用するライブラリのインストール手順
$ cd 02_PasscodeLockLayout/PasscodeLockLayout/ 
$ pod install

⭐️第3章サンプル

本章ではiOS13から新しく登場した機能で、WWDCでも大きく話題となったSwiftUIを利用した簡単な画面とSwiftUIでは実現しにくいUI表現に対してライブラリを利用することで実現できる事例についての解説をしていきます。(※このサンプルではSwiftUI1.0を利用しています) SwiftUIはまだ発表されてから1年程度なので、まだまだ発展途上の部分もありますが大きな可能性を秘めているものだと感じています。今回はUICollectionViewを利用した画面レイアウトではよくお目にかかる様な形のUI実装に対してライブラリを活用して補う形での実装方法や、実はSwiftUIの方が実装がシンプルに作れてしまうかもしれない初期位置からのスクロールでトップに配置したサムネイル画像がスクロール変化に伴ってパララックス表現がかかるような形のUI表現についてピックアップしています。

第3章サンプル図

利用しているライブラリ一覧:

※ 下記ライブラリについては「Swift Package Manager」を利用して導入しています。

3. その他サンプルに関することについて

その他、サンプルにおける気になる点や要望等がある場合は是非GithubのIssueやPullRequestをお送り頂けますと嬉しく思います。 本サンプルでは下記の部分に関しては、今回は対応していませんのでご注意下さい。

  • DarkModeの無効化(現在は強制的にLightModeにしています。)

meals_2nd_ios_ui_recipe_showcase's People

Contributors

fumiyasac avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar

Forkers

gnosis2010i

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.