No Coding, No Life.
Swiftをはじめとして、モバイルアプリケーション開発に役立つ情報を発信中。
Vaporフレームワークによるサーバサイドアプリケーション開発や、MongoDBやRealmなどのデータベースに関する情報もどんどん掲載しています。

iOSアプリだけでなく、Swiftでサーバサイドアプリケーションも作ってみます。
- SwiftUIで作ったモーダルシートでデリゲートを使ってみるSwiftUIで作ったViewにてデリゲート(delegate)を使い、呼び出し元に処理を委譲してみます。macOS向けに作ったアプリで、モーダルシートを閉じる処理と本の情報をmongoDBから削除する処理の2つを呼び出し元に実装してみます。
- macOSアプリでiOSアプリのようなListViewを実現するSwiftUIが登場した今、MacOS向けのアプリでもiOS向けのアプリのようなListViewがもしかしたらできるのでは?昔MacOSアプリを作った時に表計算ソフトのような表が現れたのをみてがっかりしておりましたが、改めて挑戦してみました。
- レスポンスを返すPOSTメソッドもVapor4に対応させてみるPOSTメソッドもVapor4に対応させるべく書き換えていきます。EventLoopFutureの仕組みなど非同期処理のことをもっと深く知っておくべきでしたね。試行錯誤の末、エラーを出さずに処理を行うことができるようになりました。
- DBから取得した値をViewに載せて返してもらう(Vapor4対応)POSTメソッドのときの構文と静的ページ取得のGETメソッドの構文の組み合わせで、動的ページ生成に対応してみたいと思います。データベースから取得したデータを一覧表示する時など、静的なページを返すよりも動的にページを生成することのほうが圧倒的に多いように思います。
- Vapor4に対応するべくVapor3のGETメソッドを書き換えてみるVapor3のプロジェクトをVapor4に対応させるべく、パッケージのアップデートやフレームワーク周りの書き換えをしてみました。その結果、routes.swiftはエラーの嵐です。公式サイトにもある通りメソッドがかなり変わっています。これを一つずつ潰していきます。

UI周りが格段に扱いやすくなりました。使いこなせるよう、日々格闘中です。
- 入力値に8%加算して返してくれるUIパーツを作ってみたいテキストフィールドに入力された値に対して、何か処理をすることってよくある話だと思います。そこで、テキストフィールドに1文字入力されるたびに正の整数かどうかを判定し、8%加算して値を返してくれるUIを作ってみようと思います。
- SwiftUIで作ったモーダルシートでデリゲートを使ってみるSwiftUIで作ったViewにてデリゲート(delegate)を使い、呼び出し元に処理を委譲してみます。macOS向けに作ったアプリで、モーダルシートを閉じる処理と本の情報をmongoDBから削除する処理の2つを呼び出し元に実装してみます。
- macOSアプリでSwiftUIによるモーダルシートを表示するiOSアプリの手法を活用して、MacOSアプリでもSwiftUIによるモーダルシートを表示させてみます。お題として、選択した本のデータをモーダルシートに渡して表示し、削除するかどうかの確認ダイアログを作ってみようと思います。
- macOSアプリでiOSアプリのようなListViewを実現するSwiftUIが登場した今、MacOS向けのアプリでもiOS向けのアプリのようなListViewがもしかしたらできるのでは?昔MacOSアプリを作った時に表計算ソフトのような表が現れたのをみてがっかりしておりましたが、改めて挑戦してみました。
- バックグラウンド処理の待機中にViewをぼかしたいSwiftUIのViewにBlurを使ってぼかしをかけます。ぼかしたViewを重ねる方法と、ぼかしたいView自体のblurモディファイアを使ってぼかしをかける方法の2通りを試しました。

iPhoneやMacのアプリを作るなら、Swiftは必須です。日頃気になったことや発見したことを綴っています。
- 依存性の注入でクラス間を疎結合にしてRealmを使いやすくする知っていたけれども使い所が分からず使ったことがなかった依存性の注入を試してみようと思います。Realmデータベースにデータの読み書きをするクラスとRealmのデータモデルが密結合になっているので、これを依存性の注入を用いて疎結合にしてみます。
- 入力値に8%加算して返してくれるUIパーツを作ってみたいテキストフィールドに入力された値に対して、何か処理をすることってよくある話だと思います。そこで、テキストフィールドに1文字入力されるたびに正の整数かどうかを判定し、8%加算して値を返してくれるUIを作ってみようと思います。
- SwiftUIで作ったモーダルシートでデリゲートを使ってみるSwiftUIで作ったViewにてデリゲート(delegate)を使い、呼び出し元に処理を委譲してみます。macOS向けに作ったアプリで、モーダルシートを閉じる処理と本の情報をmongoDBから削除する処理の2つを呼び出し元に実装してみます。
- macOSアプリでSwiftUIによるモーダルシートを表示するiOSアプリの手法を活用して、MacOSアプリでもSwiftUIによるモーダルシートを表示させてみます。お題として、選択した本のデータをモーダルシートに渡して表示し、削除するかどうかの確認ダイアログを作ってみようと思います。
- macOSアプリでiOSアプリのようなListViewを実現するSwiftUIが登場した今、MacOS向けのアプリでもiOS向けのアプリのようなListViewがもしかしたらできるのでは?昔MacOSアプリを作った時に表計算ソフトのような表が現れたのをみてがっかりしておりましたが、改めて挑戦してみました。

VaporアプリケーションからNoSQL系DBを扱う情報が少ない中、果たして使うことはできるのか?
- SwiftUIで作ったモーダルシートでデリゲートを使ってみるSwiftUIで作ったViewにてデリゲート(delegate)を使い、呼び出し元に処理を委譲してみます。macOS向けに作ったアプリで、モーダルシートを閉じる処理と本の情報をmongoDBから削除する処理の2つを呼び出し元に実装してみます。
- レスポンスを返すPOSTメソッドもVapor4に対応させてみるPOSTメソッドもVapor4に対応させるべく書き換えていきます。EventLoopFutureの仕組みなど非同期処理のことをもっと深く知っておくべきでしたね。試行錯誤の末、エラーを出さずに処理を行うことができるようになりました。
- DBから取得した値をViewに載せて返してもらう(Vapor4対応)POSTメソッドのときの構文と静的ページ取得のGETメソッドの構文の組み合わせで、動的ページ生成に対応してみたいと思います。データベースから取得したデータを一覧表示する時など、静的なページを返すよりも動的にページを生成することのほうが圧倒的に多いように思います。
- VaporアプリケーションでMongoDBのドキュメントを部分一致検索をしてみようWebページからVaporアプリケーションを通じてMongoDBのドキュメントの一覧を表示するところまでできました。今回は、タイトルの部分一致検索ができるようにしてみます。部分一致検索の絞り込みとページネーションの順序に注意が必要です。
- WebからMongoDBのドキュメントを更新したり削除したりしてみるLeafテンプレートによるWebフォームから、MongoDBのドキュメントの更新や削除をしてみます。Formタグのmethod属性に使えるのはGETとPOSTのみなので、VaporアプリケーションのDELETEとPUTメソッドを少し修正して対応します。