iOSのSKStoreReviewControllerを使ったレビュー促進ポップアップには、表示タイミングや回数に制限があります。また、App Store Reviewガイドラインでは「レビューを求めるカスタムのメッセージ画面を表示することはできません」と記載されています。
しかし、それでもカスタムメッセージ画面を表示したいという要望がある方もいらっしゃるでしょう。
本記事では、Firebase In-App Messagingを活用し、カスタムメッセージ画面やポップアップ表示タイミングをリリースなしに変更することができる解決策を提案します。
iOSでグリッド状のレイアウトを実装するにはUICollectionViewを使います。コンテンツの配置が柔軟に行えるのが特徴です。
しかし、その柔軟性ゆえに、実装の難易度は高めです。また、iOS 13や14で新しい実装方法が追加されて便利になりましたが、それも簡単とは言えません。雰囲気で使うことはできても、ちゃんと理解しているかは自信が持てない人も多いのではないでしょうか。
そこで、このポスターセッションではUICollectionViewの基本的な考え方を整理してお伝えします。
• UICollectionViewの最小構成
• データソース(UICollectionViewDataSourceやDiffableDataSource)
• セル(CellRegistrationやContentConfiguration)
• レイアウト(Compositional Layout)
SwiftUIでは宣言的UIの特性から、複雑な画面ほどネストが深くなりがちです。
このような場合、コンポーネントをfunction等に分割してもネストの深さからは逃れにくいため、可読性が低下してしまいます。
そこで筆者がExtension Programmingと呼んでいるSwift独特のプログラミング手法をご紹介します。
computed propertiesやfunctions、inner classなどをextensionに分割することで、ネストを浅くできたり役割やアクセシビリティによってグルーピングすることができたりします。
Swift 2.xくらいの頃から存在した手法ではありますが、SwiftUIで開発する機会が増えてきた今その有用性を改めてお伝えできればと思っています。
SwiftUIが登場して以来、システムアーキテクチャの選択肢として注目される「The Composable Archtecture」(TCA)は、Reduxに近い構成となっている点が特徴の1つになります。
初めてTCAのサンプルコード等に触れた際に、過去にUIKitベースのプロジェクトで状態管理フレームワークにReduxを導入した時やSwiftUI&Reduxを利用した簡易的なサンプル開発時に得た知識や体験が、処理概要を掴んでキャッチアップする際の大きな助けになりました。そして同時に「この様な部分にも配慮が施されているのか!」や「見比べてみるとこの様な特徴があった!」という気付きや学びを得ることもできました。
本セッションでは、ReduxとTCAにおける類似点や相違点に加えて、理解を進めるための前段で知っておきたい勘所等をコードやイメージ図解を交えてご紹介できればと考えております。
皆さんは、モバイルアプリ向けのSAST(Static Application Security Testing)ツールであるmobsfscanをご存知でしょうか?
このツールを使うことで、AndroidやiOS開発において安全でないコードパターンを見つけ、診断結果をSARIF(Static Analysis Results Interchange Format)ファイルとして出力できます。
本セッションでは具体的な設定方法を示しつつ、mobsfscanとGitHub Actionsを活用したDevSecOpsついて紹介します。
Redux Saga は単方向データフローの Redux を拡張し、非同期処理や副作用を直感的に管理できるようにしたアーキテクチャです。JavaScript で実装され、Web(React)や React Native でよく利用されています。
今回は、その Redux Saga を Swift で実装します。JavaScript と Swift の言語設計と性質の違いを考慮しつつ、Swift の言語特性を活かす形で、Redux Saga の主要な機能を実装したコードについて紹介します。そのコードを見ながら、Redux Saga の特性や利点を理解してもらい、iOS アプリ開発における Redux Saga の可能性を探求し、有用性と将来的な応用について議論したいです。
「Swiftで競技プログラミングに参加できる」というのは、黎明期に比べれば多くの方が知る事実になっているかと思います。
一方で、Swiftを競技用言語として選ぶ参加者は、C++やPythonを始めとする有名な言語のそれと比べれば十分に少数派です。
実際C++やPythonから積極的に乗り換えを推奨できるものでもありません。
ただ、Swiftという「武器」には一部のコンテスタントの心を惹きつけてやまない力があるようです。
このセッションでは、私自身の取り組みから得た経験をもとに、競技用言語としてのSwiftが持つ魅力に迫ります。
具体的には
といった話題について、初級者の視点から考察を行います。
普段のiOS開発では見逃しがちなSwiftの側面に、ぜひ触れてみてください!