Swiftで遊ぼう! on Hatena

あしたさぬきblogでやってた初心者オヤジのiOSプログラミング奮闘記がHatenaに来ました

Swiftで遊ぼう! - 1000 - まだまだ道半ばで奮闘中... Core Data

「Swiftで遊ぼう!」シリーズも今日の記事で1000回目です。パチパチパチ!

50親父のSwiftプログラミング、何度も挫折しそうになりながら続けています。

ド素人だったんですが、少し分かるようになりました。Core Dataがもう少し使えるようになって、ユーザーインターフェイスのデザインができるようになったらオリジナルアプリに取りかかろうと思います。

シンプルなオリジナルアプリを作って、AppStoreで公開するところまでこぎ着けたら一段落ですね。

Core Dataを使ったシンプルデモの後半部分をSwift 4.2でも動くようにコードを書き換えました。実はSwift 4.2が公開されたのですが、Core Data の大きな変更は無かったのでSwift 4向けに変更と言っていいでしょう。

yataiblue.hatenablog.com

昨日の記事に追記が入っています。

Swiftで遊ぼう! - 999 - Core Dataの復習に入ります。

私の考えているアプリはデータの永続的な保存が必要になるんで、Core Dataを利用するつもりです。Swift 2ぐらいの頃から取り組んでいましたが、なかなか理解が進まず挫折を繰り返しながら、Swift 4まで引きずっています。2016年にNSPersistentContainerが導入されてCore Dataの扱いが少し楽になったというのに、私は無視していました。

今回Swift 4.2になったところで復習をします。

yataiblue.hatenablog.com

基本的なデータの書き込みと読み出しの復習をしました。

これだけ。

Swiftで遊ぼう! - 998 - SpriteKitのチュートリアルをSwift 4.2で動くようにしました。

乱数関連でSprite Kitのチュートリアルに変更を加えました。

自分で一生懸命取り組んでいた内容は復習しても覚えていますね。まだまだ理解が浅いところもありますが、見なおしに時間がかからなくなっています。本当にいつになったらへなちょこプログラミングから卒業できることやら。

yataiblue.hatenablog.com

今日はこれだけです。

Swiftで遊ぼう! - 997 - 以前の乱数のページを改訂しました。

今日は下記のページの乱数に関する記述をSwift 4.2向けに改訂しました。

Swiftで遊ぼう! - 720 - もう少しランダム数を考える - Swiftで遊ぼう! on Hatena

ちょっとずつ既存の話題を最新のSwift 4.2に切り替えていきます。

Swiftで遊ぼう! - 997 - Swift 4.2で乱数の扱いが変わりました!

WWDC2018の「What's New in Swift」をみていて乱数の扱いが変わったことを知りました。

乱数の発生ひとつとっても、初心者だった私はC言語APIから利用されていた「arc4random()」に違和感を感じていたし、AppleもこのC言語APIの利用はプラットフォームにより挙動が異なる欠点があったということで見直したようです。

let randomInt = Int.random(in: 1...100)
print(randomInt)
let randomFloat = Float.random(in: 0...100)
print(randomFloat)

let greetings = ["hi", "hello", "yah", "hoo"]
let randomChosenGreetg = greetings.randomElement()
print(randomChosenGreetg!)
let shuffledGreeetings = greetings.shuffled()

ここまでは問題なく理解できますが、Randm Number Generator(RNG)プロトコールの使い方がわからなです。プレセンテーションではstruct型を使って説明しているのですが意味が分かりません。ヘルプドキュメントの次のenum型使ったコードの方が分かりますね。

enum Weekday: CaseIterable {
    case sunday, monday, tuesday, wednesday, thursday, friday, saturday
    
    static func random<G: RandomNumberGenerator>(using generator: inout G) -> Weekday {
        return Weekday.allCases.randomElement(using: &generator)!
    }
    
    static func random() -> Weekday {
        return Weekday.random(using: &Random.default)
    }
}

let randomDay = Weekday.random()
print(randomDay)

struct型の項目をランダムに取り出すことができそうですが、まだ自分で利用することができませんね。RNGプロトコールを準拠するために.random()メソッドの実装はいらないのにね。

まあ難しいことは今のところ考えずに昔のプロジェクトを修正していこう

Swiftで遊ぼう! - 996 - WWDC2018が始まって思うこと

何度もプログラミング勉強を再開させるといいながら、再開できずダラダラしている「50オヤジ」です。

Swift言語のメジャーアップデイトに全くついていけてなくて、Swift 4の概要もまだ分かっていないのに、とうとうWWDC2018が始まってしまいました。

昨年はほとんどプログラミング勉強から離れてしまっていたのでWWDC2017のビデオも全く見てませんでし。今年はKeynoteを全部見ました。なんと、新しいハードウェアの発表がなかったのに加えて、OSも開発ツールもブラシュアップが中心ではないですか〜!

これは神のお告げですね。Swift言語のメジャーアップデイト(Swift 5)の前に、ちゃんとSwift 4を勉強して知識を整理しておきなさい、とティム・クックさんがKeynoteで語りかけているようでした(^_^;)

ということで、Keynoteを聞き終わるやいなや MacOSX 10.14 Betaと Xcode10.0 betaをインストールしました。

WWDC2018のセッションを見ながらSwift 4.2で変化したところを勉強していきます。

Swiftで遊ぼう! - 995 - Developing iOS11 Apps with Swiftの復習から

とうとう「Swiftで遊ぼう!」シリーズは3年目に突入。今年中に自作アプリをなんとかしたい!

昨年の夏にバージョン4に進化したSwift言語の復習を手っ取り早くするのにいい資料はないかなって思っていたらスタンフォード大学のポール先生の講義がアップデイトされていたんで最初っから見なおしです。

「Introduction to iOS 11, Xcode 9 and Swift 4」をみて、今まで知らなかったポイントを2つ紹介します。

一つ目は色の設定をするコードで「Color Literal」を使って視覚的にカラーを設定できます。

「color」とタイプすれば、候補に出てきます。

f:id:yataiblue:20180117161127j:plain

これを選択すると白いスクエアが出現します。

f:id:yataiblue:20180117161212j:plain

このスクエアをダブルクリックするとテーブルが出現するので直接選択できるんです。

f:id:yataiblue:20180117161302j:plain

二つ目はOutletの種類が1つ増えた事です。「Outlet Collection」です。お決まりの「⌃ + ドラッグ」でUIオブジェクトをコードにドラッグした時にコレクションオブジェクトを選択できるようになりました。便利になりましたね。

f:id:yataiblue:20180117161857p:plain

後は特に真新しいことは無かったですね。