タグ

ブックマーク / www.kumikomi.net (5)

  • こんなに違う? AndroidとiOSの開発流儀

    ●審査方法  iPhone普及の立役者の一つがAppStoreです(図4).開発者にとっては低コストで直接世界中のユーザに販売できる絶好の場です.Androidも同じような機能のAndroidマーケットを持ちます(図5).両者の違いで最たるものが,このマーケットの審査プロセスです.誤解がないように述べると,どちらがいい,悪い,ではなく両者は単純に全く異なるのです. 図4 AppStore 図5 Android Market iPhoneの審査が一つのハードルなのは,つとに有名です.AppStoreに申請したアプリは,Apple独自の審査基準で厳格に審査され,プログラムの品質や目的はもちろん,公序良俗に反しないか,著作権に違反していないかなど,多数のプロセスで審査されます. 審査自体はAppStoreの品質を保つために必要だと筆者も思います. また,iOSはC言語ベースのシステムなので,人手

  • こんなに違う? AndroidとiOSの開発流儀

    ●GCと参照カウンタ  iPhoneAndroidでは,メモリの確保と解放も異なります. AndroidJavaはGC(ガベージ・コレクション)を実装しているので,オブジェクトの解放は全てシステム側で自動的に行われます.クラスをnewで作成することはあっても,C++のようにdeleteでプログラマが明示的に削除する必要はありません.プログラマは何も気にせず,必要なときに欲しいだけインスタンスをnewして,後はAndroid任せのほったらかしです.GCでリアルタイム性が損なわれようが,重くなろうが,それはハードウェアの進化がきっと解決してくれる課題なのです.だから,プログラマがいちいちメモリ解放のタイミングを巧妙に設計したり,CやC++のようにfreeやdeleteを忘れていたり,やりすぎてしまって,メモリリークやsegmentation faultでデバッグに悩むという泥臭いこととは無

    ext3
    ext3 2012/06/18
    "実はこれがくせ者で,プログラマの意図しないところでメモリ解放が行われたり,逆にメモリに残ったりと,iOSプログラミングの一つの壁になっています.バグの原因としても,上位にあげられる問題です"
  • こんなに違う? AndroidとiOSの開発流儀

    iPhoneiPadのOSとして知られるiOS.Androidとの違いは意外とあります.コラムでは,これらを,開発者の視点から考察してみます. ●iPhoneAndroid  iOSとAndroidは同じスマートフォン向けOSが出自ということもあり,よく比較されます.AppleiPhoneのタブレット版ともいえるiPadで成功を収め,iOSがスマートフォン以外にもターゲットを広げました.現在,Androidも負けじとAndroid 3.0(Honeycomb)でタブレットの分野に打って出ています.両社は共によきライバルとして,いまこの瞬間も,そしてこれからも競い合う関係です. しかし,その人気を二分するプラットホームの違いは,開発者以外はよく分からないというのが実情ではないでしょうか? 両方を開発している人ならば,日々いろいろと感じるところは少なくないでしょう.けれども,iOS開発

  • UMLを基礎から理解する ――UMLでできること,できないこと

    ●図による分析法はいろいろあるが... UMLを図と考えると,同様なものとして関係データベースを設計するER(Entity Relation)図,構造化分析・設計のDFD(Data Flow Diagram)などがあります.実際,あるアンケートによると,UMLを使い始めたけれどもなじみの深いDFDを手放せずに併用している人の割合は,組み込み関係では20%程度だそうです. DFDは処理手順と処理モジュール(あるいは関数)を同時に考えるときに便利な図です.UMLでこれに対応するものはアクティビティ図になります.あるいは処理手順だけならシーケンス図,処理モジュールはクラス図とオブジェクト図などが対応します. UMLでは目的に特化した図(ダイヤグラム)を何種類も使用してソフトウェアの構造を表現します.UMLは何種類もの図によって定義されている言語なので,DFDのような1種類の図とは異なります.この

    ext3
    ext3 2012/06/18
  • 初めてでも使えるVerilog HDL文法ガイド ―― 記述スタイル編

    4.テストベンチ向き構文 設計した回路を効率的に検証するために,Verilog HDLの記述能力を最大限利用することができます.テストベンチは,ある意味で「プログラミング」です.プログラミングに必要な構文が,Verilog HDLには多数用意されています. ● サブルーチンに相当する「タスク」 テスト入力の作成や,期待値との照合にサブルーチンに相当する概念のタスクを用いると,検証効率を向上できます. タスクはサブルーチンの一種ですから,タスクの定義やタスクの呼び出しがあります.また,呼び出し側とのデータの受け渡しを行う「引き数」もあります.さらに,タスクの中で別のタスクを呼び出す「ネスティング」も可能です. リスト9のテストベンチを,タスクを用いて記述し直してみました.図6のように,クロック1周期分の期間でD入力とクロックCKを制御し,フリップフロップへ任意の値を書き込むタスクを記述してみ

    ext3
    ext3 2012/06/07
  • 1