投稿

クロスプラットフォームについて

本格的なアプリケーション制作で、 自由なクロスプラットフォームを求めるのならば、以下の優先順位で使うこと。 標準ライブラリ Boost wxWidget NSPR Qt 避けたいもの、 MFC Cocoa GTK+ 基本的な考えとしては、そのライブラリのライセンスに依存する。 書いていないがJAVAに関してはモバイル環境では遅いのが難点。 ��もちろん、これは時代と共に良くなる) Pythonも有力だが、もう少し、 時間がひつようかもしれない。 .NET向けに作っても結果的にはWindows系のOSしか使えないので、 無理がある。 また、 その互換なものがあってもJAVAのように、 邪魔されたりライブラリが不安定な状況だ。 これは基本的にMSが 強力にライセンスを保持しているので先がみえてると、 多くの開発者が感じるからだろう。 尚、これは作成するコア部に関してであり、GUI部にたいしては、 wxWidgetやQtなどがある。 しかし、iOSなどで使用禁止、 になる可能性が高いため、いまのところ専用に作るしかなさそうである。

iOS系リンク

Bigginning iPhone 2 Developmentなどから抜粋したもの+アルファ フォーラム http://devforums.apple.com/ http://www.iphonedevsdk.com/ http://discussions.apple.com/category.jspa?categoryID=164 http://discussions.apple.com/category.jspa?categoryID=201 WEBサイト http://www.mosa.gr.jp/ http://www.cocoa-study.com http://www.iphonedevbook.com/ http://www.cocoadevcentral.com/ http://nscodernight.com/ http://cocoablogs.com/ http://www.iphonedevcentral.org/ http://www.iphonesdkarticles.com/ http://stackoverflow.com/ ブログ http://theocacao.com/ http://www.wilshipley.com/blog/ http://rentzsch.com/ http://eschatologist.net/blog/ http://cocoacast.com/ http://iphonedevelopment.blogspot.com/ http://www.davemark.com/

C++をMacOSやiOSへ移植するときに読みたいテックノート

ADCへ飛ぶ: Techniclal note TN2185  (English版は ココ ) この資料にはGCC Visiblity(VisualStudioでいうDLL)のことが記載され、 その宣言などのテクニックが書かれている。 注目すべきは、複数あるVisiblity制御方法の優先順。 また、 throwやdynamic_castを行う際はそのオブジェクトはVisibleにすること。    

iPhone開発のおすすめ本

Beginning iPhone3 developmentがオススメ。 英語版ですが、日本語版は古いのと難しいところにさしかかると訳がへんになっているため、読む側は2重苦なります。 eBook版も登場しているのでKindle版が手持ちのiPadやPCで読むことができるのでとても重宝します。 購入はwww.amazon.comからになります。 尚、この本で物足りなくなった場合はMore iPhone3 Developmentがよいでしょう。ただ残念ながらeBook版がまだありません。

cpplint.pyのプチハック

最近、よくつかうツールにGoogleからオープンソースで公開されているcpplint.py。 関心に思うのはHeaderファイルのガードでラベルがほぼ正確に提案されること。 なぜこんなことができるかとソースを覗いたら、予想通りリポジトリのフォルダーを基準にしていた。 ただ.gitも対応しているのか少し気になったが、それも探しているようであった。 考えることは皆同じであるw .svnを優先に探し.gitや.hgを探している。

QStringとUtf-8

MFCからQtへの移植で注意しなければならないのは、 CStringをQStringへダイレクトに置換してはいけないこと。 実は、ローケールを設定しても、 QStringはもともとある日本語をUTF16に変換した際、 クセがある。 1 パス指定である「\」これを、 「/」には変えず、日本語に存在しない似た「¥」に変換してしまう。 2 utf-8のファイルはQByteArrayへ読み込むこと、 これもQStringへ読み込む際、意図しない日本語コードへ、 変換されてしまう。 その後、toLocal8Bit()で戻しても、 ムダである。 FormatやTRACE()などでも、そのままでは動作しない。 前者はsprintfではなくargへ。 後者はいちいちtoLocal8Bit().constData()などを、 つけなければならない。

クロスプラットフォームの鬼門 wchar_t

Unicode wchar_tの説明を読むと、これさえあれば各OSで動くと希望的観測を、 つい、してしまうのが、プログラマーの悲しさです。 むろん、うまくいくわけではなく、 wchar_tは Unix系では4バイト Windows系では2バイト です。 これがクロスプラットフォームで泣かせます。 Qtなどはこれにハマらないよう設計を工夫しているのが使っているとわかります。 したがって、WindowsのプログラマーはLPTSTRとかTCHARを使っていれば大丈夫というのは迷信に過ぎないのです。 参考:   wchar_t: Unsafe at any size http://en.wikipedia.org/wiki/Wide_character