Title

ComicGlass 4.60Beta1

次バージョンでの対応予定

・表紙を手動生成したときにiPad Retina解像度にならない問題を修正
・ファイル一覧で「削除」ボタンを表示中、かってにボタンが非表示になってしまうことがある不具合を修正
・Webブラウザビューを若干変更(アップルの審査対策・・・Webブラウザ内蔵してフルアクセスができると+17にしないといけないため。通ったり突然通らなかったりでよくわからない)
・バックアップの復元中に落ちてしまうことがある問題を修正
 発生条件:バックアップするフィアルの総パス超が一定以下(9文字)以下だと発生

accelerometer:didAccelerate:がDeprecatedになっている

加速度センサを使うアプリを新たに作っています。
ふとドキュメントを見たら、accelerometer:didAccelerate:が、(Deprecated in iOS 5.0.)になっていました。

代替は手段はどうするんだろうって悩んだのでメモ。

    motionManager_ = [[CMMotionManager alloc] init];
    motionManager_.accelerometerUpdateInterval = 1.0/60.0;

    NSOperationQueue *currentQueue = [NSOperationQueue currentQueue];
    accelerationValueFirst_ = YES;

    [motionManager_ startAccelerometerUpdatesToQueue:currentQueue
            withHandler:^(CMAccelerometerData *accelerometerData, NSError *error)
    {
        CMAcceleration acceleration = accelerometerData.acceleration;

        UIAccelerationValue x = acceleration.x;
        UIAccelerationValue y = acceleration.y;
        UIAccelerationValue z = acceleration.z;
        //お好きな処理
	}

ブロックを使う方法が推奨されているようです。
・・・と思いきやbeginAnimations:context:はDeprecatedになっていませんね。

CMMotionManagerはiOS4.0から利用できるようです。

ComicGlass v3.60審査提出

時間が開いてしまいましたが、新バージョンを審査に出しています。

かねてから、フォルダにサムネイルを、本棚のデザインを、というご要望を頂いておりました。
しかしながら従来のデザインのままフォルダにサムネイルを付けるとどうにも不自然だったためアイコンデザインの変更を行い、フォルダにサムネイルが表示されるようにしました。
また、デザインの変更をすると「前の方が良かった」ということも起こり得ますので設定で前のものも選べるようにしました。

せっかくなのでもっとデザインを増やしたいところですが、本棚のデザインを1セット追加すると1MB以上の容量増加になるため「テーマ」機能を導入し、後からインストールが出来る仕組みも追加しました。
ユーザの方が作ったテーマもインストール可能ですので、我こそはという方は是非ハイセンスなテーマを作ってみてください!

iPhoneアプリプログラミング最初の1歩

iOSのプログラミングはObjectie-Cで行います。
C言語や他の環境のGUIプログラミングの経験があるという前提で最初に一番理解し難いのはメモリの管理だと思います。

最新のObjective-Cではガーベジコレクションといった便利な機能が利用できますがiOSでは利用できません。
よって設計者が自前でメモリ管理をしないといけません。

retain,release,alloc,deallocの使い分けが最初さっぱりわからないんですよね。

最初疑問が解決しにくかった思い出を元にヒントを箇条書きにしています。

・allocすると実体が確保され、参照カウントが1になる。
・retainすると参照カウントが1上がり、releaseすると1下がる
・参照カウントが0になると解放される

(ここまでは良くある説明で分かりやすいが、さらに初心者を苦しめるのが以下の機能)

・autorelease poolの中でautoreleaseをすると、autorelease poolが解放されるときに自動的にreleaseが呼ばれる
・autorelease poolはイベントサイクルごとに自動的に処理されているので、イベントの処理の中でautoreleaseしておけばとりあえずその処理が終わった後にreleaseされると思っていい。
・OSのAPIの中には実体を確保した上でautoreleaseされてオブジェクトが返されるものがある。
 見分け方はオブジェクトっぽい名前で始まっていてクラスメソッド(+で始まるやつ)になっているもの。
・よって、イベント処理後も残したいならばretainしておかないと自動的に解放されてしまう。
・逆にautoreleaseされている状態なのにreleaseで参照カウントを0にしてしまうとイベント処理後にクラッシュする。

アプリのバックグラウンド実行を無効にする(iOS)

よく忘れるのでメモです。
iOS4.0からバックグラウンドでアプリが動くようになりましたが、これを無効にするには以下のようにします。

.plistに、
UIApplicationExitsOnSuspend (Application does not run in background)
を追加し、trueにします。

カレンダー

2024年4月
1234567
891011121314
15161718192021
22232425262728
2930  

▲Pagetop