マガジンのカバー画像

Swiftでいこう!

585
楽しくプログラミング!Swiftはなんだか楽しい"ことば"です。
運営しているクリエイター

2022年9月の記事一覧

Swiftでアプリ。- ListでJSONを使う。

JSONデータを使えるデータに(デコード)してリスト表示させて、そのリストから選んだものの詳細画面を別Viewで作り遷移できるようにします。 WebAPIで取得したデータを使ってリストに書き出していますが、このリストからさらに詳細画面に遷移させます。 を使います。 遷移するだけではなく、遷移先のデータをリストの項目についての詳細、JSONデータの同じデータを利用して表示させるようにします。 まずは利用するJSONデータを追加します JSONデータを使うための構造体で

Swiftでアプリ。- JSONの使い方。デコード

まず基本的なこと。JSONというのは簡単に説明すると、 JSONは今ではWebAPIなどで利用されJavaScript以外のいろんなプログラミング言語でも利用されています。 JSONではデータの受け渡しを簡単にするために使われているので実際に使うときには使える型に変換して使うことになります。 その変換が"デコード"ということになります。Swiftでの方法を確認していきます。参考サイトのJSONの例示です。 { "person": [ { "nam

Swiftでアプリ。- NavigationLink。

画面を切り替えて使えるようにする(画面遷移)ためにNavigationLinkが便利に使えます。 iOS16になりNavigationLinkと一緒に使っていたNavigationViewが非推奨(使えないようにる) ことで、 を使いなさいということになりました。 なのでNavigationStackを使ってみます。(Xcodeでやってます) struct ContentView: View { var body: some View {

Swiftでアプリ。- WebAPIを使おう!

インターネット上でいろんなデータが公開されていてそのデータを利用することができます(WebAPI)。データはJson形式のデータを利用することが多いと思われるので、Json形式のデータをリストに表示させるようなものを作っていきたいと思います。 データが公開されてるサイトからJson形式のデータを取得してswiftで扱える形にする関数です。データは"qiita"のAPIを利用しています。 取得するデータのの構造体を作ります。JSONデータをswiftで扱えるようにするための

Swiftでアプリ。- Todoリスト! 4

リストに追加していくことができるようになり再起動してもデータが残るようにもできました。次はいらないものを削除できるようししていきます。 今のリストは List( todoList,id:\.self){todoData in Text(todoData)} で表示させていますが、削除の機能をつけるには削除のメソッドを持つ"forEarch"を使います。 ForEach(todoList,id:\.self){todoData in

Swiftでアプリ。- Todoリスト! 3

入力してリスト表示させることができたのですがアプリを終了させるとデータは消えてしまいます。 これを保存する仕組みを作っていきます。保存する方法としてはAppleのフレームワークとして UserDefaultsCore Data後は Realmがよく使われているのではないでしょうか。 保存するデータが少ない場合はお手軽な"UserDefaults"を使うことができます。 Todoアプリを保存できるように"UserDefaults"を使って実装します。 保存する基本形

Swiftでアプリ。- Todoリスト! 2

入力欄とリスト表示ができるようになったので、次は入力欄に入力したものがリストに反映されるようにしていきます。 "TextField"で受け取ったデータですが、@Stateで宣言した変数に代入されるのでリアルタイムに更新することができます。 以下のコードで確かめることができます。プレビュー画面に入力して確かめると入力欄に文字を入れると同時に表示されます。(iPadまたはMacのSwiftPlaygraouds、もしくはXcode) struct ContentView:

Swiftでアプリ。- Todoリスト! 1

リスト表示 Todoリストといえばリストなのでリストを表示する方法をまず確認しておきます。 まず基本的なことから。SwiftUIであれば簡単に表示させることができます。 import SwiftUIstruct ContentView: View { var body: some View { List { Text("A List Item") Text("A Second List Item")