Hatena::Groupiphone-dev

iOS プログラミングメモ

2013-07-12 (Fri)

MocaのMac版を作ってました 12:17  MocaのMac版を作ってました - iOS プログラミングメモ を含むブックマーク

最近Macアプリの開発情報を更新していたのは、月特化カレンダーMoca のMac版を作っていたからでした。

昨日サブミットしたのでお知らせします。今月中にはリリースできるといいな。

f:id:ktakayama:20130712112553p:image:w600

Macアプリの開発、思ったより大変でした…。5月はじめから着手して他の仕事はほとんどなかったので、丸2ヶ月くらいかかってしまったということか。iPhone版のMocaより時間かかってるという。

最初のうちは「iOS版のコードをちょろっと変更しただけで動くぜひゃっはー」とかいう感じで進めてて「みんなMac版作ればいいのに」なんて思ってたんですが、だんだんそうもいかなくなってきて気付いたらいばらの道へ。Model系のクラスはわりとそのままいけるものが多いんですが、UIKitとAppKitとの違いはボディブローのように効いてきます。

  • 兄弟View同士を重ねられない(重ねる場合はSubviewsにする)
  • 原点が左下の[0,0] (iOSは左上[0,0]が原点)
  • TableViewやScrollViewのAPIがなんか全然違う、構造も全然違う
  • NSViewControllerとUIViewControllerはイコールじゃないらしいとか
  • Layerの扱いもなんか違うっぽい

あとカレンダーまわりのAPIがひどすぎて泣けた。Moutain Lionより前はCalendarStoreていうフレームワークがあったんだけど、Moutain LionからはiOSと同じEventKitフレームワークが導入されたので「こいつはラッキー」と使い始めたのが運の尽き。バグらしきものがすごくてビビった。多分これでカレンダーアプリ作ってる人いないんじゃないのかっていうレベル。まだ新しいOSとか試してないから、その辺ちゃんと調査してバグリポートせねば。

もちろんMacアプリ開発にも良い点はあって、特に動作速度が速くてメモリが芳醇なのはすばらしい。iOSの場合はちょっとでも動作速度を上げるためになるべく余計な処理を省くようにしていましたが、Macではそれほど気にしなくても体感できる差はあらわれない。そして Cocoaバインディング が超便利で感動した。Cocoaバインディングを使うとViewの変更(メニューの選択やテキストフィールドへの入力)をModelへ反映させるための雑多なコードを書かなくてもよくなる。たとえば設定画面とかでNSUserDefaultsの中身を更新するような機能を作る場合、コードは一切書かなくていい。ただ、CocoaバインディングはiOSでは使えないみたいで残念。

というわけで、みんなMacアプリ作ればいいのに。

uchiuchi2013/12/28 03:54Mac版Mocaを利用させていただいております。
まだまだこの先期待できるアプリだと思いますが、とりあえず以下の通り要望させていただきますので、お願いします。

【要望】
・下部に「今日に移動」など直接今日に飛べるボタンが欲しい。
・メニューバーを使用できるようにして欲しい。
・予定を入れる時に最初から詳細入力が出来るようにして欲しい。
・その月の背景に薄く月名を入れて欲しい。

以上、その他にもまた何かあったら連絡させていただきます。
とても便利に使わせていただいておりますので、よろしくお願いいたします。

リオンリオン2014/01/15 10:31mac版mocaについて
背景に月名表示が出来るようにして欲しい。
Googleカレンダーの同期内容を、カレンダーを切り替えると予定が気えてしまう。

改善お願いします!

uchiuchi2014/01/20 04:25不具合がありますので、ご修正いただければと思います。

【不具合】
・複数日に渡る予定を入力し、開始時間と終了時間を指定すると開始日のみに予定が表示され、それ以外の日には予定が表示されません。

ダブルブッキングをしてしまいそうになるのでご修正いただければと思います。

MOMMOM2015/07/17 01:55新規登録の画面にするとすぐにホーム画面に戻ってしまい、設定すら出来ないので、しっかり改善して頂きたいです。

トラックバック - http://iphone-dev.g.hatena.ne.jp/ktakayama/20130712