採択
原稿(8ページ)

UIColletionViewCompositionalLayoutによるカスタムレイアウトの実装例

k_katsumi Kishikawa Katsumi

UICollectionViewCompositionalLayoutはiOS 13から新しく導入されたAPIです。このAPIを使うと、AppStoreアプリや写真アプリのような、異なる大きさのセルが混在したり縦スクロールの途中に横スクロールが出現するような、iOS 12以前では1つのセルに複雑なサブビューを配置したり、セルの上に別のコレクションビューを組み合わせたりということが必要だった非常に難しいUIが簡単に作れるようになります。

実際に昨年のWWDCでAppleは、AppStoreアプリのUIをこのAPIを利用して書き直すことでかなりの量のコードを削減し、シンプルでメンテナンスしやすい実装にできたと話しています。

私はこのAPIが出てきたことにより、ほとんどのUIはコレクションビューで作ればよいと考えるほどに、すばらしく柔軟で拡張性のあるレイアウトシステムだと考えています。

しかし非常にシンプルで強力というAPIなので、1つのレイアウトを複数の方法で記述できますが、まだまだ情報が少ないためより良い書き方はどれかということがわからないこともあります。
さまざまなUIをシンプルに記述することができますが、不可能なことやこのAPIを使わない別のやり方の方が望ましいケースももちろんあります。

今どきのアプリで実際に使われている複雑なレイアウトを例にこのAPIを使って実装し、ベストプラクティスや逆にあまり向いていないケースはどういうことがあるか、などについて解説します。
UIColletionViewCompositionalLayoutを使用すべきときとそうでないとき、使用する場合のレイアウトごとのより良い実装をサンプルコードを通じて学びましょう。

15
採択
原稿(8ページ)

Mint🌱でBrewfileとPodfileを滅殺!

FromAtom FromAtom

iOS開発をしていると様々な "*file" を利用することになると思います。Podfile, Cartfile, Gemfile, Brewfile。様々なツールが様々な方法で導入され、setup.shが肥大化していくことでしょう。その対策の一つとしてMintを使う方法があります。MintはSwift製CUIのバージョン管理ツールです。このツールを利用することでBrewfile(そして多くの場合はPodfileも)を滅殺することができるようになります。この原稿では

  • Mintを導入する流れ
  • Mintを導入した時に対応に困りがちなライブラリたちとその対策
  • Bitriseと組み合わせた際に困ることとその対策
  • Mintを導入すれば全てがうまくいくわけではない話

などについて記述します。

2
採択
原稿(8ページ)

GitHub ActionsでiOSアプリをCIする個人的ベストプラクティス

the_uhooi uhooi

※本原稿は、同様のタイトルで出したトークの原稿版です。

みなさん、iOSアプリ開発でCIを行っていますか?
なかなかCI環境を構築する時間が取れず、行っていない人も多いと思います。

でもご安心ください!
iOSアプリのCI環境は、どのような規模や種類のアプリでもだいたい同じです。
一度構築すれば他でも使い回せます。

本原稿ではFastlaneやCIサービス独自の機能をできる限り使わず、スクリプトベースでCI環境を構築する方法を紹介します。
そのため、どのようなCIサービスを使っていても取り入れやすいです。

【目次】
・ライブラリのセットアップ・ビルド・単体テストを実行するスクリプトの作成(Makefile)
・ビルド・単体テストを実行するCIの構築
・★キャッシュを使ってCIの実行時間を短縮する
「★」はGitHub Actions独自の機能を使う

【想定する読み手】
・iOSアプリ開発でCIしたことがない人
・CI環境の構築に苦戦している人

【ゴール】
・CIしたくなる
・CIの意味とメリットがわかる
・GitHub ActionsでiOSアプリをCIできる
・CIサービスにかかわらずiOSアプリをCIできる

【使っているツール・ライブラリ】
本原稿では以下のツールやライブラリを使います。
使っていなくても応用できるように説明しますが、知っていると原稿を理解しやすいです。
・Mint
・Bundler
・Carthage
・CocoaPods
・XcodeGen
・xcpretty

本原稿を読んで、実際にCI環境を構築してくださると嬉しいです!

8