iOSのローカルDBへの接続!

とりあえず、起動時にDB接続して書き込むってことをやってみた。一回はうまくいくものの、そのまま二回め起動するとエラーになる。どーゆーこと?ってことで現象を確認してみました。

同じコードでも連続して実行するとエラーになっていた。1回目は問題なく動いて、データが登録されている。

DBが作成済みのときに考慮が必要かと思って物理ファイルを削除してみるが、結果は変わらず。 プライマリキーを設定してバチバチ固定でデータ追加のロジックを書いたので、キー重複で異常終了してると思ってpkをコメント化するものの、結果は変わらず。何が原因だろうか…

当たり前だけどエラーメッセージから原因追求するしかないですね。ちゃんと調べて対処します。

チュートリアル!

iOSのローカルDBの実装にrealmを使うと決めてからそれなりの時間が経過しました。やっとチュートリアルが完了しました。

ということでやっと自分のアプリに取り掛かることができるのです。チュートリアルで演習のようにコードを打ち込んで動作を確認していったので、多少のスキルもついたことでしょう。ということで、次に取り組んだことはこちらです。

  1. モデルの作成
    • 文字通り、モデルの作成
    • データの型、リレーションまで定義
  2. アクセサリの作成
  3. アプリへの組み込み
    • 今回はローカルへ保存
    • iCloudのバックアップ対象となるように設定
    • 実際のデータ操作

このあたりを組み込んで、履歴管理を行います。これとは別で画面の作成も行います。

チュートリアルのアプリを作ってて思ったのは、自分は意味がわからず組んでいたということ。どこへどんな関数を作るか、コメントの残し方、確認方法とかも含めて全然できていなかった。

今後の課題として以下のことがあがります。すべてやるかは別問題ではありますが、課題として把握しておかないと。

  • 画面をstoryboardからコーディングの管理へ変更
  • 自動生成されたCoreDataの定義や、その他使わないロジックの削除
  • 不要なコメントの削除(細か過ぎて見にくい)

実装とは関係ないけど、ER図も残しておくようにします。そうすれば全体の関連性が読め、プログラムに手をつけれなくなってしまうということが発生しにくくなります。クラウド管理できて無料のツールでdraw.ioを使ってます。 Flowchart Maker & Online Diagram Software

自分はいきなり作り始めましたけど、参考サイトを多数あるので見てみるといいかもしれません。 draw.ioの使い方【概要・導入編】(無料図面作成ツール) - ちょっぴり幸せになる

開発していく中で大事なのはリリースすることだけど、継続していくためのドキュメントも必要だなと思いました。便利なツールをうまく使っていこうと思います。

カブトムシになることを祈って

そーいえば、3日ほど前にカブトムシの幼虫の土を変えました。幼虫のフンが大量で変えなきゃやばいだろって状況だったので、カブトムシの成虫を見るためには必須作業だったのです。ケースの外から見てるだけで大きいのはわかるのですが、実際に出して見るとかなり大きいですね。入れ替え直後に幼虫を上にのせたときの様子です。

ゴロゴロしてるのがわかると思います。かなりの数がいますが、これで半分です。このサイズの幼虫が20匹以上入れるのは無理があるだろうと思い、残りは逃しました。ちゃんと土に潜ってく様子は見れたので大丈夫だと思うのですが、素人からすると心配ごとばかりです。

何はともあれ、土の入れ替えは完了しました。あとは土が乾燥しないように霧吹きをかけて、成虫になるのを待つばかりです。夏を楽しみにします。

電子ノートという選択肢はあり?

デジタルでラフを描けたらいいなぁーと前々から思っており、電子ノートとかをときどき見ます。こんなのとか。

シャープ 電子ノート ブラウン系 WG-S30-T

シャープ 電子ノート ブラウン系 WG-S30-T

電池持ちがよく、軽くて多くのページ数を書くことができるようですね。ふむふむ。

電子化する目的として大きなものは、シェアできることです。逆に言うと、シェアできなければ電子化する意味がありません。電子ノートは…シェアする機能がイマイチですね。パソコンに取り込んでからシェアする方法もあるけど、そんなめんどくさい事はしたくない。よって、ネットワークに繋げることも必須要件となります。

ネットワークに繋げてバッテリー持ちがよくて軽い。この条件に近いのはiPadなんですよね。重量とバッテリーは電子ノートには負けるものの、バッテリーは10時間持つので通常の使用に耐えられます。アプリもたくさんあるので、使用感を確認しながら気に入ったものを使えば良い。 ラフだけなくテキストとして入力もできるので状況に応じて使い分けることができます。

あとは予算との相談でしょうか。iPadは値段が張るので、購入に躊躇する方が多いと思います。Androidの選択肢もあるのですが、個人的にはSDカードスロットとかいらない穴が多くてしっくりこないです。 画面は小さいですが、iPhoneを使ってるので、手頃なソフトを買うのがいいかと思ったりします。それかペンタブを買ってmacで手書きをする、という方法もありかと。

選択肢はいろいろありますが、現時点でペンタブの購入がよさそうな気がします。金額がそんなに高くなく、重量が軽くてバッテリーは気にしなくて良い。画像編集ソフトは探せば見つかるでしょう。 ということで、本格的にラフを描くようになったらペンタブを買うことにします。それがいつになるかはお楽しみですね。ふふふ。

戦略を練っているところか?

ここ何回かブッチャーというラーメン屋へ行ったときのことです。毎回作る人が変わっています。

去年くらいまではずっと同じ人が作っていて、にんにくを入れていいか聞かれてました。直近2回はそれぞれ違う人で、にんにくは聞かれませんでした。どの人が作ってもスープは濃厚で麺は太麺ですが、スープの脂の量や仕上げ方は人によって違っていて、毎回楽しんでます。 系列の中で人の配置をどーするか、誰が作ったスープをベースにするか等々、試行錯誤をしているのでしょうか。客の視点からではわかりませんが…

次はどの人がどんな仕上がりにするか気になりますが、濃厚なので頻繁に行くと胃の方が早くに限界を迎えそうです。

自分の性格では飽きるまでひたすら一つのことをやり続けるのですが、ブッチャーに関してはほどほどにしないとな、と思います。体と相談しながら、ほどよく行こうと思います。

何往復したことか

プライマリキーの関係からcoredataよりrealmの方がよさそうだし、realmでもiCloudにデータを保存できるようなので、realmで実装しようと方針を固めたところ。realmとcoredataの間を3往復ぐらいしたと思いますが、ようやく定まりました。

ここまでのトライアンドエラーの結果から、初めての言語の場合は小さいサンプルプログラムを作ると全体の関連性がわかって早く進むことがわかりました。なので遠回りのようだけど小さなサンプルを先に作ろうと思います。

realmの公式サイトにチュートリアルが載ってましたが、最初のビルドのところでエラーになってしまった。storyboardを使わないで画面を作るところでしたが、今の自分はコードだけで画面設計するスキルがないので行き止まりな感じ。公式でない人たちのサンプルプログラムもたくさん出てくると思うので、別サイトを参考にしようと思います。

この山を越えたらiOSアプリの開発してるった、多少声を大きくしてもいい気がする。モデルの作成からコーディングまで一気に進めてしまいます!がんばります!

似た悩みどころがどこなんでしょー

MagicalRecordを使ってサンプルプログラムを一つ作ってみました。DBへの書き込みは問題なさそなので、あとはきちんと書き込めたか、DBの内容が想定通りであるか確認するところだけ。でも、調べてでてきたものはどれもシンプルさに欠けていてイメージしにくい。もっとシンプルな操作で確認する方法があるだろうと思っているのですが、まだ見つけられていません。 sqliteのファイルがどこにあるか、という問題なので開発ツールであるxcodeに依存するはず。でも、こんな細かいところまでドキュメントに書いてあるとは思えないので、iOSシミュレーターとかのパスを取得できる関数を使ってパスを調べるのがいいのかな… もう少し調べてみて、スマートな方法でなんもかしたいと思います。