java
Cocos2d-x でゲームを開発していると広告を表示させたり、ランキングを追加したり、課金を入れたり、SNS や Twitter と連携したり、アクセス解析をしたり、など iOS や Android の機能を使わないと実現できない機能があります(このようにプラットフォームと …
Cocos2d-x(3.4 Final) の ui::ScrollView クラスを使うとAndroidで背景色が緑色になる現象が発生しました(iOS ではこの現象は発生しません)。 こちらのページに載っている方法で解決することができました。 Problems with UIScrollView: Green Background an…
Android でソフトウェアキーボードの表示・非表示を検出する方法です。 LinearLayout クラスの onMeasure メソッド内でビューの高さを測ることでキーボードが表示されているかどうか検出できます。 import android.content.Context; import android.util.Att…
Android SDK には Apache Commons の HttpClient など HTTP 通信するためのライブラリがあらかじめ搭載されているのですがマルチパート POST するためのライブラリがありません。Apache のライブラリをプロジェクトに自前で追加してもいいのですが必要のない…
Android で Google Map を使ったアプリを作成しようとしたのですが、ライブラリに癖があって結構苦労しました。そこで LocationManager を使って MapView(Google Map) 上に位置情報を表示させる簡単なサンプルプログラムを作成してみました。 サンプルプログ…
Android の WebView を使って Javascript 関数を呼び出すには WebView#loadUrl メソッドを使います。ただしこの方法だと関数の戻り値を取得することができません。 一番簡単で手軽な方法として Javascript の alert 関数を使って WebChromeClient クラスの o…
Android 2.0 から GpsStatus.NmeaListener というリスナが追加されました。このリスナは NMEA-0183という形式で GPS 衛星の情報を取得できます。このリスナかなり細かい情報がとれて面白いのでデータを取得するプログラムを作成してみました。 なお NMEA の…
Android の位置情報は端末や OS のバージョンによって微妙にとれるタイミングやプロバイダがちがうので iPhone にくらべかなり癖があります。中には LocationManager#requestLocationUpdates メソッドを呼んでも30分以上メソッドが呼び出されないなんて事も…
データベースを使うほど大げさなものじゃなくて、ちょっとしたデータを保存したいときって結構あると思います。 そんな時iPhoneはNSUserDefaultsクラス、AndroidはSharedPreferencesクラスを使います。両者ともにKey-Value形式でデータを保存できます。ただ…
最近、GLUTによる「手抜き」OpenGL入門やOpenGLを使ってJavaでも3Dを楽しもうを参考にOpenGLの勉強をしています。 その中で歩行ロボットの実験という面白い演習問題を見つけたので腕試しにJOGLで実装してみることにしました。 問題のヒントとして腕や足の振…
前回に続きメイヤー著「オブジェクト指向入門 第2版 方法論・実践」で面白い原則があったのでまとめてみました(コード例はJavaで書きました)。 前提 メソッドの引数は2種類ある オペランドメソッドの操作対象であるオブジェクト オプション操作のモード オ…
アプリAとアプリBがあり、アプリAでテキストボックスに文字を入力しボタンを押すとテキストボックスの内容をアプリBの画面に表示するサンプルを使って説明します。 iPhoneの場合 iPhone では UIApplication クラスの openURL メソッドを使うと他のアプリを起…
この前書いた日経ソフトウエア2010年1月の記事の中でiPhoneとAndroidの電子コンパスについて書いたのですが、紙面の都合上Androidで真北をとる方法を載せることができませんでした。せっかくなので補足の意味も込めてAndroidで真北をとる方法を紹介しiPhone…
最近Processingというお絵描き用プログラミング言語で遊んでいます。 手軽にいろいろできて面白いです。構文はJavaの簡易版といった感じなので、Javaがわかる人だとすぐにプログラムできるようになると思います。 サンプル static final int LENGTH = 400; v…
Google Androidプログラミング入門江川 崇, 竹端 進, 山田 暁通, 麻野 耕一, 山岡 敏夫, 藤井 大助, 藤田 泰介, 佐野 徹郎アスキー・メディアワークスこのアイテムの詳細を見る 執筆に参加した「Androidプログラミング入門」が今日発売になります。前著「Goo…
Android(HTC Dev Phoneで検証、G1では未検証)の温度センサを試してみました。 気温20℃で33と表示されるのでなんかおかしいと思い、いろいろ調べてみるとインテントレシーバでバッテリーの温度が取れるらしいこと発見しました。もしやこれはセンサーの温度計…
使えるUI部品の種類は似たり寄ったりですね。iPhoneはガベージコレクションが使えないのでオブジェクトの開放をしてやる必要があってめんどくさいです。 Viewの種類 iPhoneにはチェックボックスがなく代わりにUISwitchがあるのが面白いです。両者の違いはな…
両者の大きな違いはiPhoneはInterface Builderでイベントの定義ができるのに対しAndroidはレイアウトXMLでイベントの定義ができないところです。 またiPhoneはselectorという関数ポインタに似た仕組みがあるのでコード上でも割と簡単にイベントの定義ができ…
iPhone と Android 両方のアプリ開発を経験したので両者を比較してみます。 技術情報 iPhone iPhone Dev Center iPhone Dev Center(日本語) Android Android Developers Android Developers(日本語) OS iPhone Mac OS Xベース Android Linuxベース 開発言語/…
大きな違いとしてはiPhoneの場合加速度計のみ管理しているのに対してAndroidは他のセンサー(温度計や磁気センサーなど)と一括りにして管理しています。またiPhoneでは加速度計オブジェクトを直接取得できるのに対しAndroidでは加速度計オブジェクトを取得す…
本屋で奥義本の第2版が出てるのを発見しました。 興奮して中身みたらC++のコードがJavaにかわってただけでした。 もともとコードの7割ぐらいがJavaやったしなんとも微妙...。 アジャイルソフトウェア開発の奥義 第2版 オブジェクト指向開発の神髄と匠の技ロ…
5月の連休明けから先週までとあるSIer様の新人研修(Java・UML・オブジェクト指向)のサブ講師をしていました。 そもそも文系学部→システム営業出身でプログラミングの新人研修というものを受けたことがない私のような人間にはすべてが新鮮でした。 クラスパス…
本格的にAndroidアプリの開発をするとなるとやはり開発標準が必要になると思います。 ガチガチに決める必要はありませんが、開発標準があれば複数人開発にも一定の秩序ができてやりやすくなるかと思います。UI標準D_PAD_CENTERまたはバックボタンで代用でき…
SpringのHibernateDaoSupportクラスのgetHibernateTemplate経由のメソッドはSessionのcloseとflushを自動でやってくれるんですね。 ということは、getHibernateTemplate経由で取得したオブジェクトは分離オブジェクトになりますね。 Spring+Hibernateのセッ…
ここ何日かHibernateAnnotationsを使ってみて気づいたことなんですが、ビジネス層がアノテーションで汚染されてるような気が...。 現在作成中のアプリケーションのレイヤ構成とパッケージ構成はこんな↓感じです。プレゼンテーション |-action ?form ビジネス…
Hibernateアノテーションでまたもやハマってしまいました...orz Immutableなクラスを作りたくてフィールドアクセスに変えようとしただけなのになぁ。 Hibernateでgetter/setterアクセスからフィールドアクセスに変更するには通常hbmファイルだと↓のようにacc…
昨日に引き続きHibernateアノテーションの話題です。 EJB3アノテーションのcascadeにはall-delete-orphanがありません。 これがないと1対多の関係で多のオブジェクトを削除してもDelete文を発行してくれません(それどころかupdateメソッドで落ちます)。 この…
Hibernateでイーガフェッチを使うと重複行までとってきてしまいます。 普通、重複行は持ってこないだろと思うのですがそんなに親切ではありませんでした。通常eagerなコレクションフェッチをすると重複が出てしまうため、あなたが期待するような行数にはなら…
今日は一日中、Hibernateアノテーションと格闘してました。 Hibernateアノテーションに移行してしまえばhbmファイルが必要なくなるので導入するメリットはでかいです。 まずはこちらのページで基礎を勉強してしてます。 HibernateAnnotations::きしだ なおき…
ActionにサービスをAutowiringでDIしたいときは通常AutowiringRequestProcessorを使うのですがそうするとStrutsのChainが使えなくなってしまいます。 両方使いたいってときは↓のサイトが参考になります。 Struts(1.2.x)+Spring連携 Struts 1.3.x + Spring 2.…