この記事はartima developerに掲載されている、Trygve Reenskaug氏とJames O. Coplien氏による記事「The DCI Architecture: A New Vision of Object-OrientedProgramming」を、著作権者であるBill Bennrs氏の許可を得て翻訳したものです。本文内の図の著作権はArtima, Inc.に帰属します。(原文公開日:2009年3月20日) 要約 オブジェクト指向プログラミングはプログラマとエンドユーザの視点をコンピュータコードにおいて統一するものと考えられていた。この恩恵はユーザビリティとプログラムの分かりやすさの両面にわたる。しかし、オブジェクトは構造をとらえるのに長けている一方で、システムの動作をとらえることができていない。DCIはエンドユーザのロールに関する認識モデルとロール間の関係を

Androidアプリ開発においてCIツールHudsonで分散ビルドするようにするプロジェクトは多いと思うんですが、署名自動化についてメモ。(今はJenkinsですね。でも以下はHudsonですすめたいと思います)Build Secret Pluginについて アプリをAndroidマーケットから配信するためにはリリースモードでコンパイルして作成されるAPKファイルに秘密鍵の署名で署名する必要があります。これは keytoolで秘密鍵を生成し、jarsignerで署名する手間が発生します。けどHudsonには「Build Secret Plugin」という便利なプラグインがあって、これは秘密鍵と秘密情報をzipファイルで圧縮してHudsonサーバへアップロードすることで、APKファイル作成の都度の署名するとかのめんどくさい手順が省けます。 前提 ここでは以下の名称での例を示します。適宜読み

1988-1994年の間、PCエンジンのゲームを作るために、どんな環境で仕事をしていたのかということを記録に残しておくため、PCエンジンのソフトの開発システムについての記憶に残っている限りの覚書。 今の自分ですら忘れていて、やばいことが分かったので、一生懸命歴史的な資料として残すためシリーズ。 後の世に、このブログのメモがなんの役に立つのかと言われたら、わかんないけど、ナニカの役に立つ…こともない気がするが、残しておいてまあ損はないだろう。PCエンジンの開発システムは、基本が左図のようにNECのPC-9801のCバスに接続される通信用の拡張ボードと、Hu7と呼ばれる開発キット(メモリが拡張されて、ROM領域がRAMとして実装されROMカードが簡単に開発できるシステム)がハードとしてあった。 もちろんPC-9801シリーズは、今のAT互換機と同じものではない、日本の独自規格ハードで、開発環
UsefullCode.net Visual Studio 2005/2008/2010やandroid SDK/NDKでの開発者向けに便利なソースコードを提供 This site provide you with useful source codes under 'USEFULLCODE license'. 「EasyProjectGenerator forAndroid」はAndroid用のプロジェクトを自動生成するフリーウエアです。プロジェクト種類とプロジェクト名を指定するだけで簡単にAndroidアプリ(含ネイティブアプリ)用のプロジェクトを自動生成できます。 具体的な利用方法はこちらのエントリーを参照してください。 EasyProjectGenerator forAndroid Ver 1.04 EasyProjectGenerator forAndroid Ver 1
This document discusses tips for implementing a camera app forAndroid.It addresses issues like OutOfMemoryErrors that can occur when working with large bitmap images from photos.It recommends decoding bitmap data in samples to limit memoryusage, and using camera callbacks like onPictureTaken appropriately since the callbacks are asynchronous.It alsonotes that supported camera sizes can vary
はじめに 良いゲームの作成に一般論というものはありませんが、とはいえやはりこれが守れていないと評価を下げてしまうというものがあります。特に海外では競争が激しくちょっとした瑕疵でも周りとの差が大きく開けられてしまう場合があります。例えば、「マモノスイーパー」というゲームが製作者のサイトで公開されて高い評価を得ました。ところがそれがKongregateで公開されるとほとんど話題になりませんでした。その大きな要因は新しいタイプのパズルゲームにもかかわらず、チュートリアルがなく、操作説明の英語もひどくユーザーがまともに遊ぶことができなかった事です。その後コメント欄に親切なプレイヤーが操作説明を書いてくれたおかげで徐々に評価が上がって行きましたが、時すでに遅くたくさんのゲームの中に埋もれてしまいました。他にもこのゲームは海外で公開するには多くの問題があるのですが、それらはこのページを読むことでわかる
今の会社に移って半年経ちました。めでたく試用期間終了です。といっても別に試用期間中に密かに首を切られるような事をしたとか、逆に試用期間が終わったからと言ってこれで定年までのうのうと働ける、という訳ではありません。未来は全く判りません。まあとにかく、一つ区切りがやってきました。 金融を知らないQuantsの仕事 私の職業の肩書きには Quantitatitatitatitative という単語がくっついて超カッコよさそう。普通は Quant というと、金融工学や統計数理に詳しい夜もブイブイいわしている超イケメン20代を想像しますが、私は金融とか全然知らないアラフォーお父さんです。それでも Quant です。お願いですから、私に何を買ったらいいかとか、聞かないでください。金融商品とか買った事ないし。というか、逆に教えて欲しいです。 私のチームは、本当の Quant さん達が開発した、金融派生商
Androidアプリと言えばUI命!、ということでギークな方々が作られている便利なUIライブラリを見つけられる限り、スクリーンショット付きでまとめてみます。 皆様いずれもソースと一部サンプルアプリを公開されているのですぐにでも試してみることができます。 (作者の方々、載せることに問題があるようでしたらお手数ですがご一報くださいませ) Quick Action 公式Twitterアプリ風にタッチした箇所に吹き出しを表示できる レイアウトもカスタマイズ可能 Y.A.M の 雑記帳:Android Quick Action のAndroid ライブラリプロジェクトを作ってみた Drag and Drop ListView ドラッグアンドドロップで並び替え可能なリストビュー 似たようなのは色々あるけどこれが一番使いやすかった! ユーザがソート可能なListViewをすこしリッチにしてみた -

Androidアプリ開発(に限った話ではないですが)でTDDしたいと思ったときに、テスト対象クラスのフィールドをモックで差し替えたい、と思うことがしばしばあります。依存するクラスの振る舞いを固定化することで、テスト対象オブジェクトの振る舞いだけに着目したテストケースを書くことができるからです。 そんな時に、DIコンテナ上でコードを書いていると便利です。以前、少しだけSeasar2+EasyMockでテストを書いていたことがあったのですが、作成したモックオブジェクトの差し替えを、ほぼ全てSeasar2がやってくれたのでものすごく便利でした。Android開発でもSeasar2+EasyMockくらい簡単にテストを書きたい! ということで、Android Mockでモックオブジェクトとその振る舞いを定義 RoboGuiceでモックオブジェクトをテスト対象クラスにインジェクト ということをや
もちろん、アプリ開発の話です。 結論から言うとカメラアプリを起動すると呼び出し元が縦向き(Portrait)でも、必ず横向き(Landscape)にされます。 よーするに、変な動きします。 大抵のアプリは以下の2つの条件がそろって問題がおきません。 ・カメラが横向きじゃないと使えなかった ・撮影した画像をそのままの向きで見て加工などをするという関係でアプリが横向き専用だった この場合は、もともと画面が横向きなのでセーフ。 そうそう、カメラの呼び出し方法は「AndroidSDK開発のレシピ―104個のレシピで学ぶAndroidアプリ開発の極意」塚田 翔也 (著) の、レシピ088あたりを参考にしてくださいね。(もちろん宣伝ですw) 話を戻して。 回避方法としては、Y.A.M の 雑記帳 「Android 画面の縦横切り替え時に元の画面を保存」を参考に「onConfigurationChang
ProGuardはJavaコードを最適化/難読化するためのツールです。apkのサイズが少なくなったり、apk解析された際に解析され難くなります。 今回は難読化のさせ方がよく分からなかったので整理しておきました。 なお、ProGuardのバージョンは4.5を使用しています。 前準備 ProGuardの導入に関しては他ブログを参照ください。 公式のここやここのブログの方が綺麗に導入方法をまとめています。 一応ハマりポイントだけまとめておきます。 ADTをr7に上げる proguard.dirはProGuardのlibまでのパス androd-sdk内のantファイルでjavacタグ内のencodingをUTF-8にするプロジェクト内にて以下のコマンドを実行すると正常に処理されたら準備OK。 $ ant release ここまでで出来ている必要があるもの。 obf以下にdump.txtやmap
H.Narazaki (2010年10月24日 21:56) | コメント(1) | トラックバック(0) | 前回「互換性については注意すべき点を踏まえて設計段階で気を付けていれば、ほとんど問題出ないよ」的なことを書きましたが、今回は「100だの200だの端末出てるのに検証どうするんだ」という話。 ■いきなり結論 結論を言いますと「全検証なんて元より非現実的なんだから、動作確認環境だけ示しておいて動作『保証』はするな、サポートのために手元に置く端末は比較的少なくても可能」ですかね。 だいたい「検証しないとサポートなんて云々」とかいうバカな人が(特に日本では)散見されますが、現実問題としてPCでもガラケーでもiOS向けですら全検証なんてしていないでしょう? また、クオリティアップのコストパフォーマンスとしても割に合いません。 ■その心 「全端末で検証」したからといってバグは無くなら
ContentProviderからデータを取得しているアプリのテストコードを書くときに、テストデータとして端末内のデータを使わずにモックのデータを使いたいということは多いと思います。 今回は端末内の画像を一覧表示するアプリケーションを例にして、このようなテストコードの書き方を説明します。 テスト対象のActivity 以下のようなActivityをテストすることを考えます。 package com.polysfactory.mocktest; importandroid.app.ListActivity; importandroid.database.Cursor; importandroid.os.Bundle; importandroid.provider.MediaStore.Images; importandroid.provider.MediaStore.Images.

最近なにかとAndroidアプリを作る機会があるのだが、その最中にある出来事の一つとして、”ググっても解決方法が分からない”というのがある。クラス名、メソッド名でググってもリファレンスしか検索結果に表示されないなど。特にマイナーなAndroid Frameworkのクラスを使おうとしている時がそう。イライラが頂点に達する瞬間でもある。 あと、Android フレームワークの使い方を調べるときは、大抵Android developersのリファレンスマニュアルを見ているのだが、”説明がまったくないメソッドに出くわし”たり、”マニュアル通りに設定しているのに、その通り設定されなかった”という出来事もあったりする。 そんな時はAndroid フレームワークのソースコードを読んで解決している。先の”マニュアル通りに設定して動かなかった”原因は、設定したパラメータが実はAndroidフレームワークの
■理想AndroidってJavaだからメモリ管理なんてしなくてもいいよね!! なんて思っていた時代が私にもありました・・・ ■現実 @Override protected void onDestroy() { super.onDestroy(); // 画面が回転した時など、Activityが破棄されるときに呼び出されます // すべてのメモリはここで開放します // - 特に危険なのが内部クラス(MyWebChromeClientなど)、正しく開放しないとActivityが開放されません // - セットしたbackgroundのcallbackもnullにしないと開放が行われません // - webViewのdestroy()を忘れると後からGCが走ったときにVMがクラッシュします this.webView.stopLoading(); this.webView.setWebChro
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く