型キャストがダメっぽいけどほんとの原因がつかめない

TableViewの表示とDBのリレーションの整合性を保つためにTableViewに表示している値を取得しようと思ったけど、思ったように検索にひっかからない。配列を作ってそのまま表示させるパターンがほとんどなので、DBから取得したリストをpritvate内で使用できるようにするのが普通と思われる。

その実装をしようと思っているんだけど、なんかうまくいかないんですよね。型キャストがダメっぽいんだけど、自分で確認した内容だと合ってる。どーなってんだろ。わからないことだらけでなにを調べれば良いのやら…

少し落ち着いてからもう一回確認してみようと思います。

サンプルコードは強力な助っ人でしょう

なんちゃってアクセサを作ってデータの取得はできたんだけど、挙動がイマイチわかってない。公式サイトを見てはいるんだけど、知りたいところが載っていない。読み取れてないだけかもしれないですけど… キーワードで検索してはいるものの、これという情報がひっかからず。もう少しサンプルコードを見た方がよさそう。サンプルコードであれば実際に動くものを作っているので、信憑性が高いですし。 まずはrealmの公式から取得できるサンプルを見て、とっかかりがなかったらgithubを見るようにしようと思います。

前には進んでる感じ

とりあえず、コーディングの美しさは後回しにしてゴリゴリと動くためだけのコーディングをしています。一通り動くことを確認したら、内容を精査して部品化、余分なコードの削除をする予定です。

今はTabBarControllerへ1ページ追加して、ViewControllerのスタイルを整えているところ。追加したページは基本的にコーディングでデザインをしていきます。 作成済みのページは知識がないところから作業をしたのでstoryboardでデザインを作りました。なので、自作アプリでコーディングで画面を作るのは初めてなのです。で、なにをやるにしてもうまくいくことはありません。

今は何に躓いてるかというと…まだ一番最初のところです。TableViewをセル状の表示にする部分からうまくできていないです。DBから読み込んだデータをセルへセットするところもうまくいってないようだし、そもそもダメっぽいです。

一つずつ潰してくしかないんですけどね。少しずつでいいから毎日進めないとな、と思ってます。がんばります。

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で手書きをする、という方法もありかと。

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