読者です 読者をやめる 読者になる 読者になる

Swiftで遊ぼう! on Hatena

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

Swiftで遊ぼう! - 866 - なんと!バックグラウンドで動かすのは難しそうだ

タイマーをバックグラウンドで動かすなんてなんの問題もないと思っていたら...

hazakurakeita.hatenablog.com

なんと、バックグラウンドで処理を続けるのって、本当に難しそうです。

短時間ではあるが、UIBackgroundTaskIdentifierを使うのがベストかなって思いまいした。

あくまでも短時間なんで、どうなるか試してみないとわかりません。

それかBackground ModesでAudioを使う方法があるのかなって。

私のやりたいことが実装されたアプリが無い理由が分かりました(T . T)

Swiftで遊ぼう! - 865 - Timerクラス

メソッドを決められたタイミングで発動させるために利用されるのがTimerクラスです。

このクラスの利用法は簡単なんで、ViewControllerで実装する例をよく見かけます

class ViewController: UIViewController {
    
    // タイマークラスを初期化インスタンス化します。
    var mainTimer = Timer()

    var countUp = 0
    
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
    }

    // ストーリーボード上のUIButtonから作った@IBActionメソッド
    @IBAction func startTimer(_ sender: UIButton) {
        
        // タイマーがスタートします。
    // Timerクラスのタイマーが発動!
        // 1秒間隔で、countingメソッドが呼ばれます。
        mainTimer = 
         Timer.scheduledTimer(timeInterval: 1.0, 
                                    target: self, 
                                  selector: #selector(counting), 
                                  userInfo: nil, 
                                   repeats: true)
        
    }
    
    // コンソールでカウントさせていくだけです。
    func counting() {
        countUp += 1
        print("\(countUp)")
        
    }

実は、このTimerをバックグラウンドで動かしたいので、少し考察をいれています。

このようにメインスレッドでコードすると、アプリをバックグラウンドに回したら止まるという説明なんで、試してみることにしました。

実は、シュミレーターを使っても再現することができないんです! これは知りませんでした。アプリを「Cmd + Shift + H」を使ってバックグラウンドにしても、カウンターは動き続けます。NSTimerからTimerに変更が加わり挙動が変わったのかと思いました。

そこで実機で動かしてみたんですが、やっぱりシュミレータと挙動が違うんですね。ホームボタンを押すとカウントアップはちゃんと止まりました...

やっぱりバックグラウンドでTimerを動かす勉強をしなければなりませんね(^^;)

Swiftで遊ぼう! - 864 - 新規プロジェクトの名前

新規プロジェクト、既に同じことを考えている人はたくさんいる事が分かりました。

それでも自分で使用することを考えて新規プロジェクトを立ち上げようと思ったのですが、ネーミングで悩んでします。既に使われている名前ばかりでした。

本当に新しい事を考えるって大変ですね。

ネットで探して検索で出て来ない名前をつけました。

これからですね。

Swiftで遊ぼう! - 863 - 新規プロジェクト

やっとブログ更新がリアルタイムに追いつきました。ホッと一息。

次は新規プロジェクトも考えてます。

作りたいアプリを思いついたので、ネットで同じアイディがあるかどうか探してみました...

ありますね。山のように見つかりました。そりゃそうですね。同じようなことを考える人は必ずいるんです。

でも、同じアイディアでも、私が考えている機能を実装しているアプリがないんですよ。

アプリって、まさにこんな感じです。

目的のアプリはあっても、自分が望んでいる機能が備わってないことが多々あります。そうなると自分でその機能を加えたくなるんです。まさにプログラミングを勉強している理由の1つです。

欲しい機能は自分で実装する。このために新しいアプリを作ります。

Swiftで遊ぼう! - 862 - ブログ記事をランダムに改訂中7

色々な話題にとびまくっています。

昔書いた内容を読み直していると間違いだらけでいい加減な箇所が多い事に気がつかされます。

このブログを使って勉強している人は混乱していることでしょう(^^;)

yataiblue.hatenablog.com

Swiftで遊ぼう! - 861 - ブログ記事をランダムに改訂中6

一度勉強して理解している内容は、例え忘れていても簡単に思い出せますね。

詳細な記述をブログに残していたのが良かったです。それでも勘違いや間違いの箇所があり、それを修正することで理解が深まっているような気もします。

今日はデザインパターンのデコレータのパートを復習しました。デリゲーションメソッドをエクステンションを使って実装する方法! すっかり忘れていました。デザイン・パターンもプログラミングの1つの作法であり、自由に自分の設計思想をもって開発する重要性を再認識できました。

yataiblue.hatenablog.com

Swiftで遊ぼう! - 860 - やっとアクセスコントロールを見直しました

Swift 3の数ある変更の中、アクセスコントロールが細分化(3パターンから5パターンに拡張)されていることを知っていたのですが、今のいままで確認していませんでした(^^;)

やっとSwift 3に向けて改訂しました。

yataiblue.hatenablog.com