皆さんはシークレットキーをどのように管理していますか?
GitHub Sponsors を利用することで、一定の第三者にコードを公開する手法が登場するなど、ソースコードの公開スタイルは様々です。ただし、機密情報の管理方法には注意が必要です。契約を結んでいない技術者に機密情報が見える状態は、漏洩や不正アクセスなどのトラブルを引き起こす可能性を高めます。
本稿では、既存のチーム開発スタイルを維持しつつ、機密情報を Git のコミットに含めない開発手法を紹介します。Xcode Cloud への対応はもちろん、KMM(Kotlin Multiplatform Mobile)などの異なる開発スタイルでも有効な方法です。これは特に OSS活動 で力を発揮しますが、業務委託契約など、多様な働き方が進む中でトラブルを未然に防ぐためのノウハウとして活用できます。
iOSでグリッド状やリスト状のレイアウトを実装する際には、UICollectionViewが広く使われています。iOS 13以降ではレイアウトの実装クラスとしてCompositional Layoutが標準で用意され、複雑なレイアウトが組みやすくなりました。
しかし実際のところ、どのようなレイアウトが組めるのでしょうか。この記事では、具体的なレイアウトの実例を紹介していきます。
・レイアウトを構成するセクション、グループ、アイテムについての説明
・グループの使い方、グループのネスト
・セクションヘッダーの実装
・アイテムバッジの実装
じっくり読んで理解していただくために、レイアウトの図解や具体的なコードを掲載する予定です。
Redux Saga は単方向データフローの Redux を拡張し、非同期処理や副作用を直感的に管理できるようにしたアーキテクチャです。JavaScript で実装され、Web(React)や React Native でよく利用されています。同じ宣言的 UI の SwiftUI との相性が期待できます。しかし、残念なことに Swift で Redux Saga を実装したライブラリはありません。
無いのであれば、自身で作成するしかありません。JavaScript と Swift の言語設計と性質の違いを考慮しつつ、Swift の言語特性を活かす形で、Redux Saga の主要な機能をどのように実装するかを解説します。Redux Saga の特性や利点を紹介して、iOS アプリ開発における Redux Saga の可能性を探求します。
アプリ開発の中で、画面要素と内部ロジックとを結合する処理等でCombineを利用する場合もあると思います。Combine+SwiftUI(場合によってはUIKit)の組み合わせをより強力に生かしていく際には、仕様把握・機能担保の観点でのUnitTestは大きな意義を持つと考えております。
本稿では、
等のトピックをRxSwiftを利用した場合と見比べた事例や、CombineでのUnitTestを実施する際に便利なOSSを活用した事例も交えてながら解説できればと思います。