[iOS] メモアプリ比較 2023年10月 Drafts, Bear

[iOS 17.0.3、watchOS 10.0.1]

開発中のメモアプリについてwatchOS版を改良するため、類似アプリの機能を調べています。

watchOS版では文字列を追加すると改行が消えてしまう仕様をなんとかしたいと考えています。watchOSでは複数行を扱えるTextEditorは使えず、単行用のTextFieldしか使えないためです。

類似アプリであるDraftsやBearでの実装を確認すると追加する文字列を1行として扱い、元のメモに結合させる方法で対処していました。

検証して分かったのですがDrafts、Bear共にwatchOS版はiCloudにあるデータと直接やり取りできないようです。iOS版を介してデータを取り込んでいます。その点は自製アプリの方が優れています。

私自身はiPhone、iPad、Macでメモを作成し、Apple Watchで内容を確認するという使用スタイルですから、iPhoneで一旦起動しないと最新にならないDraftsやBearは条件を満たしていないことになります。

あと起動すると同時にメモの内容が表示されるアクセス性の良さも自製アプリのウリでしょうか。DraftsのwatchOS版は起動して2タップし内容をようやく確認できます。Inboxを呼び出すコンプリケーションでは起動プラス1タップになり少しマシになります。

今のところApp Store公開は考えていませんが、出来栄え次第では2,3ドルで販売しようかな。

[Swift] UIKitを通して学習する

JavaのSwingやC++のFLTKなどコードだけでGUIアプリを作ってきた私がSwiftUIのようなフレームワークを最初に使うのはどうやら選択ミスだったようです。自分の経歴に合った学習方法を考える必要があります。

SwiftUIではなくUIKitベースのプロジェクトを作成し、Storyboardを使わずにコードだけでGUIを書いていくことにしました。Swiftに関するネット情報が多岐に渡っていて右往左往しましたが、自分に合った学習方法は自分にしか分からないと悟りました。

構成ファイルは以下の3つです。
AppDelegate.swift
SceneDelegate.swift
ViewController.swift

とりあえず定番のHello Worldです。

import UIKit

class ViewController: UIViewController {

    let label = UILabel()

    override func viewDidLoad() {
        super.viewDidLoad()
        view.backgroundColor = UIColor.white
        label.text = "Hello World"
        label.textAlignment = .center
        view.addSubview(label)
    }

    override func viewDidLayoutSubviews() {
        super.viewDidLayoutSubviews()
        label.frame = view.bounds
    }
}