マガジンのカバー画像

Swiftでいこう!

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

2020年7月の記事一覧

SwiftUIでいこう! - Stopwatchを作る。2

StopWatchManeger.swiftファイルを編集していきます。 class StopWatchManeger:ObservableObject{}に "enum"でstart,stop,pauseの設定を作ります。 enum stopWatchMode{ case start case stop case pause} 次に今作った"stopWatchMode"を使えるように変数に入れ、初期値を"stop"にしておきます。

SwiftUIでいこう! - Stopwatchを作る。

早速コードを書いていきます。 import SwiftUIstruct ContentView: View { var body: some View { VStack { Text("0.0") .font(.custom("Futura", size: 50)) .padding(.top,200) .padding(.bottom,100)

ちょっとアルゴニズム - Quicksort(Swift)

最初のリンクがPythonでの処理で、下がSwiftでのソート例です。 Swiftのコードです。すっきりしています。 func quicksort<T: Comparable>(_ a: [T]) -> [T] { guard a.count > 1 else { return a } let pivot = a[a.count/2] let less = a.filter { $0 < pivot } let equal = a.filt

Swiftでいこう! - Playgroundsであそぼ。

アップル無償プログラミングツール「Swift Playgrounds」を試そう アップルの無償プログラミング学習ツール「Swift Playgrounds」簡単なお絵描きアプリを作ろう iPadから移植されたMacアプリ「Swift Playgrounds」を使っていきます。 テンプレートは「図形」で実施していきます。ダブルクリックで開くと、 let circle = Circle()circle.draggable = true とすでに書いてあり、右側の表示ゾー

ちょっとアルゴニズム - Shell Sort(Swift)

Insertion Sort(挿入ソート)の進化版です。 1  ある間隔をあけた数字に対して比較します。 2  必要であれば入れ替えます。 3  比較した数字の間隔を小さくします。 1,2,3の繰り返しで、間隔がなくなれば終了です。 参考コードです。 func shellSort(arr: inout [Int]) -> [Int] { guard arr.count > 0 else { return arr } var gap = arr.count / 2

New SwiftUI - Property Wrappers-その他のもの。

@StateObject @ObservedObjectの不具合を改良したもの、 を参考に一部抜き出しますが、 ローカルの状態を保持したい時に これまで@ObservedObjectを利用しようとしていたところで @StateObjectを利用するのが良いのではないかと思います。 他からイニシャライザを経由して利用するような場合はこれまで通り@ObservedObjectを利用することでよりコードを読んでいる人へ意図を伝えやすくなる ということらしいです。詳しくは以

ちょっとアルゴニズム - Selection Sort(Swift)

選択ソートは配列の最小値(最大値)を持つ要素を探して、それを配列の先頭要素と交換することで整列を行うアルゴリズムです。 ということで先頭の数字と他の数字を比較して数字を条件によって数字を入れ替えるという感じで後ろにずらしていくというとで最後まで繰り返します。 コードは添字を使って配列の値を指定して計算を進めています。 小さいものを見つけて、入れ替えるという仕掛けです。 func selectionSort(_ array:[Int])->[Int]{ guard

New SwiftUI - Property Wrappers-@AppStorage

まずProperty Wrappers全体のおさらいです。まとめていただいているので参考に。 @AppStorageです。これかなり便利です。key-value data を保存するものです。UserDefaultsを使う保存方法のSWiftUI版となります。 Property Wrappersを自分で定義して使うようになっていましたが、今回のアップデータで@AppStorageというのができています。ほんと便利。 使い方ですが、 で紹介されていて、試してみると。

New SwiftUI -- Lazy Grids and Stacks

LazyVGridとLazyVStackです。GridとStack同じような動きをしますが、以下サイトで違いを調べられて、解説されています。

New SwiftUI! - ScrollViewReader

ある特定の場所まで自動でスクロールさせるものです。公式のドキュメントです。 日本語では以下の記事が良さそうです。 ScrollViewReaderのclosureで返ってきてるvalueの型はScrollViewProxyです。 ScrollViewProxyはscrollToという関数を持っています。 func scrollTo<ID>(ID, anchor: UnitPoint?) 実際のコードをみてみましょう。 struct ContentView: View

New SwiftUI! - ColorPicker

ColorPicker()を実装してみます。 struct ContentView: View { @State private var color = Color.white var body: some View { ColorPicker("pick a color", selection: $color) }} これを実行すると、 こちらのコードは以下となっていて、カラーを選ぶと文字色が変わります。 struct ContentVi

SwiftUIでいこう! - 時計を作る。

WWDC20を追いかけていますが、今回は今のSwiftUIです。 時計のアナログ時計の作り方を紹介されているのを見つけたので、ちょっとやってみます。 まずは時間を取得しないといけません。 @State var hour = Calendar.current.component(.hour, from: Date()) これで、今の時間が変数"hour"に入っていきます。 struct ContentView: View { @State var hour

New SwiftUI! - Mapkit

新しい"MapKit"です。前までは、構造体を別に作ってそれを"ContentView"に入れ込む形で実装していましたが、これからはフレームワークで対応されることになりました。動画で紹介されていて、10分ぐらいからMapが紹介されています。 まず import MapKit です。そして変数宣言です。表示したい地図の緯度、経度を調べます。Google Mapでも調べることができますが、ここではMacのMapで調べます。3Dでやっていますが、2Dでもできます。 調べたい

New SwiftUI! - LazyVGrid

グリッドレイアウトです。綺麗に並びます。 アップルの紹介動画 ほか、紹介サイトです。 自分でも上記サイトを参考に書いてみます。 まず並べたいものを作ります。配列で作ります。 private var symbols = ["keyboard", "hifispeaker.fill", "printer.fill", "tv.fill", "desktopcomputer", "headphones", "tv.music.note", "mic", "plus.bub