Category: howto

  • AndroidアプリからWEB検索させるインテント要点だけ

    1. Intent search = new Intent(Intent.ACTION_WEB_SEARCH);  
    2. search.putExtra(SearchManager.QUERY, “検索文字列”);  
    3. startActivity(search); 

    こんな感じでいけるみたい。外部のアプリが立ち上がって検索実行できる。
  • Eclipseが起動しなくなったときの対応の要点だけ

    Androidアプリの開発で使うEclipseだけど、作業途中でハングアップ、強制終了後に再起動しても起動中の”building workspace…”あたりで起動がハングしてしまうことがあって、その対応メモ。

    • Eclipseの強制終了後、起動しなくなる問題の一つはEclipseの一時ファイル.snapファイルというやつが壊れている事が原因みたい。
    • なので、このファイルを削除してしまえばOK。こんな感じ:
      rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.snap
      rm path/to/workspace/.metadata/.plugins/org.eclipse.core.resources/.projects/*/.*.snap

    • これはワークスペースの変更を記録しているファイルで、強制終了後とかに作業状態の復帰とかに使われるものみたい。これが壊れていると復旧途中で止まってしまうということっぽい。

    ということで削除後、Eclipseを普通に起動すればきちんと起動するはず。もしくは.metadata/.logを見ると、何かしらエラーログが記録されているはずなのでこれをチェック。

  • Android LogCatがすぐ消えてしまうときの対策howto要点だけ

    Androidアプリの開発で使うDDMS(Dalvik Debug Monitor Serviceっていうらしい)についてるLogCat、たまに一瞬だけ表示されてすぐ消える、みたいな現象でバグだと思ってたんだけどすごい単純なことで治るみたいだったのでメモ。

    (more…)

  • UIWebViewのバウンスアニメを無効にする要点だけ

    アプリ内でUIWebViewを使うときに困るのが、タッチ操作でスクロールできてしまうこと。
    ネイティブUIにUIWebViewが入りこんでいることが分かって、UIの統一性が失われてしまう。

    WebViewがドラッグ動作で範囲外までスクロールできる「バウンス動作」が無効にできれば良さそうだけど、、ということで調べたら、出てきたのでメモ。

    http://stackoverflow.com/questions/500761/stop-uiwebview-from-bouncing-vertically
    for (id subview in webView.subviews)
      if ([[subview class] isSubclassOfClass: [UIScrollView class]])
        ((UIScrollView *)subview).bounces = NO;

    要はUIWebViewsのsubViewsで取りだした子要素の一覧からUIScrollViewのインスタンスを取り出し、
    それのbouncesプロパティを無効にする。これがうまくスクロールをdisableにできれば、気兼ねなくネイティブUIとのハイブリッドが採用できそう。

    まだ実際には試してないけど後で試してみる予定。

  • UIWebViewでloadHTMLStringするときの要点まとめ

    iOSアプリで適宜、UIの一部分をUIWebViewにしてHTMLで処理するようにすると開発効率が劇的に向上するということは間々あって、その中でもこのエントリではUIWebViewを使ってローカルでHTMLをloadHTMLStringするときの注意点のメモ。

    (more…)

  • AndroidでListViewの要素の高さを固定したいときの要点だけ

    AndroidのListViewで、要素(行)の高さを固定したいとき。
    例えば行がLinearLayoutだとして、

    <LinearLayout
      xmlns:android=“http://schemas.android.com/apk/res/android”
      android:layout_width=“fill_parent” android:layout_height=“100dp”>
    <!– SOME UI –></LinearLayout>

    みたいなheightの設定だけでは不十分で、

    <LinearLayout
      xmlns:android=“http://schemas.android.com/apk/res/android”
      android:layout_width=“fill_parent” android:layout_height=“100dp” 
      android:minHeight=“100dp”>
    <!– SOME UI –></LinearLayout>

    みたいにminHeight(最小の高さ)も設定する必要がある。

  • Xcode 4で古いライブラリのリンクエラーの解決方法を要点だけ

    Xcode 4にアップデートしたときに、古いarm6用にビルドされたライブラリのリンクでエラーになる場合の解決方法。
    “Undefined Symbols for architecture armv7” みたいな感じ。
    詳しくはみてないけどどうもXcode 4のビルド設定のデフォルトが変わった模様。

    これは、 ビルド設定のアーキテクチャにarmv6 と armv7のキーワードがあることが原因っぽい。
    ⇒Target > Valid Architectures をダブルクリックして、armv7のエントリを削除

    そうするとビルドに成功します。ただしiPhone 3GS以降はarmv7なので、当然armv7でビルドできるならそちらのほうが良いはず。

  • Xcode 4 howto: フレームワークの追加

    Xcode 4で既存のフレームワークを追加する方法です。

    1.Project Navigatorを開く
    2.ターゲットのアイコンを選択
     そうするとSummary/Info/Build Settings/Buid Phases/Build Rulesというタブがエディタエリアに表示される。
    3.”Build Phases”を選択
    4.”Link Binary With Libraries”を選択
    5.”+”を選択
    6.ダイアログでフレームワークの一覧が表示される。ここから選択して”Add”
    7.Project Navigatorにフレームワークが追加されます。

    ちなみにAdd Files…でフレームワークのフォルダを直接指定しても追加されるみたい。