2014年6月14日土曜日

ワールドカップがキター

ブログの更新をさぼっている間にワールドカップが始まりましたね!(マテ
私は高校生まではサッカー漬けの日々を送っていたので、いつもサッカーの試合となると自分もフィールドにいるつもりで観戦してしまいます。

開幕戦のブラジル対クロアチア。おもしろかったですねー。
特に目を引いたのはシュート性のゴールに向かうクロスでした。
クロアチアはこれで1点をブラジルからもぎ取りましたね。

これは相手DFが触ってもゴールが狙えるので点が入る確率が上がります。
しかし、これはFWが触れません。なぜならFWはマイナスのクロスを想定して動くからです。サッカーはスペースを奪い合うスポーツです。誰かが動けば必ずスペースは生まれます。
クロスをあげる人が切り替えしをすることで、相手DFはディフェンスの再構築をしなければなりません。そこで必ずスペースが生まれます。クロスをあげる人がまるでファンタジスタですね。このスペースが得点のにおいを感じさせます。ほんとに一瞬ですけどね。

サッカーを観戦するときに、空いてる人ではなく空いてるスペースを見つけながら観戦するのをおすすめします。とてもエキサイティングですよ。

2014年4月20日日曜日

Genymotionを導入してみた

eclipseのエミュレータでandroid4.4.2のテストをしたかったのだけど、
どうにもこうにもTheme.Holo.Light.NoActionBar.TranslucentDecorの状態が作れなかった。スキンに問題あるのかな。

そんなわけでGenymotionを導入してみました。
試してみたところTheme.Holo.Light.NoActionBar.TranslucentDecorが反映されていることが確認できました。しばらく使ってみよう。
4.4の実機がほしいです。

4.4のアクションバーも含めて透過

ぼへーっとStackOverFlowを見てたら面白そうなのがあった。
http://stackoverflow.com/questions/19746943/why-cant-we-use-a-translucent-system-bars-with-and-actionbar

アクションバーも含めて透過してる。
からくりとしてはアクションバーの背景を透過する。
んで、activityの一番上のレイアウトに色をつける。
そうするとその一番上のレイアウトの色がステータスバーとアクションバーの背景として見える。

おもしろいけど、個人的にはちょっと見づらいかな。
でもアプリのカテゴリーを表示する色として使うとかならありなのかなぁ。

2014年4月18日金曜日

というわけで

ステータスバーがレイアウトに被るような場合のレイアウトのサイズが見れるものを作ってみた。
https://play.google.com/store/apps/details?id=ahscode.statusbaronscreen
https://github.com/ahscode/teststatusbar

androidのdimenのapilevel15~19を確認したけど、公式ではステータスバーの高さは25dipだった。
マージンなりパディングなりは25dipでとれば大丈夫そうだけど、滲んだりするといやだから追加で8dipくらいとればいいのかな。

kitkatの実機がほしいです。

2014年4月17日木曜日

kitkat対応

盲点だった。

kitkatでは新しいテーマで
android:style/Theme.Holo.Light.NoActionBar.TranslucentDecor
というのがある。
こいつはステータスバーが透明になる。
かつ、Viewのコンテンツ領域がDisplaySizeと等しくなる。
そしてコンテンツ領域に被さるようにステータスバーがある。

この被さるというのを考えてなかった。
コンテンツ領域がステータスバーに被ってしまう。

じゃあ、他のバージョンもこれに似た状況にしないとね。
というわけで、ActivityのsetContentViewの前に、

というのを呼び出すと、ステータスバーがコンテンツ領域に被るようにできる。
他のバージョンでも透明になったらいいのになぁ。

2014年4月16日水曜日

FragmentPagerAdapterで登録しているFragmentの完全取得

ViewPagerのアダプターにFragmentPagerAdapterを使っている場合、
mAdapter.getItem(int position)で返ってくるFragmentはその実体ではない。
具体的に言うと、メンバ変数として登録したレイアウトなどへのアクセスが全てnullになる。
staticなものとかfinalは試してません。

じゃあ、どうやってアクセスするの?
ということで、surpportv13にある実装を見てみる。
コンストラクタのFragmentManagerを使って内部でタグをつけてaddしていた。

そんなわけで真似して呼んでみたらnullじゃなかった。
FragmentがもつViewの入れ替えもできた。

なんだろう。こう、もにょる。
それなら自分でsupportv4のPagerAdapterを拡張しておれおれFragmentPagerAdapter作ったほうがいいような気がしてきた。

全部のFragmentを必ず最初にattachしてonCreateは呼ばせたいが、そうなると今度はViewPagerの根本的な拡張になるんだろうなー。

具体的にはこんな感じで試してみました。

2014年4月15日火曜日

とあるDragAndDrop

ドラッグアンドドロップのやっているところで簡単なテストアプリを作ってみた。
onDragListenerのテストでございます。
やりたいことは、
・レイアウト内にあるViewを他のレイアウトにドラッグアンドドロップする
こんだけ。

で、試しにやってみたところうまくいかなかった。
エラーで、
 E/AndroidRuntime(12379): java.lang.IllegalStateException: The specified child already has a parent. You must call removeView() on the child's parent first.

これが出る。何ぞこれ?と思って調べたところ、
Kazzzの日記 Viewの階層を入れ替える
http://d.hatena.ne.jp/Kazzz/20100603/p1
というサイト様で図解が出ていた。

ほむほむ。
親との縁を切れと(違

冗談はさておき、元のparentとの関係を無効(removeView)にして宙ぶらりんにした後、
新しい親に加わえる(addView)。invalidateではだめでした。

最初はアニメーションの関係かなぁと思ったのでpostDelayしてみたりしたがだめでけっこう行き詰ってました。だってview init<うんたらかんたら>とかいうエラーが出たし。
さらにMainActivityの匿名クラスでやってたもんだから、参照がわけわかめになっていた。

そんなわけで、匿名クラスを全部外に出し、やりとりは全て独自インターフェイスにして、必要なものだけActivityのメンバ変数にした。

以下ソース。


2014年4月13日日曜日

GridLayoutを均等にしてみるテスト

均等にするのってめんどくさそうだなーと思いながらカスタムビューを作ろうとして、
既存のウィジェットでできないもんだろうかと思ったのでやってみた。

どっかでワンクッションを置く感じで透明な状態で使いたいサイズで組み込んでおけば、あとから使いたい実数値も取れる。
例えば、始める前に「Hi! this app is うんたらかんたら Okボタンを押すと始まるよ!」とかいう画面を入れてみたり。んで、永続データに突っ込む。
ボタンをタップもしくはクリックするとこんな感じになります。
階層は、
RelaitiveLayout
 LinearLayout
  ボタンとView
 RelativeLayout
  RelativeLayout(ポイント1)
   GridLayout
と言う感じです。
このポイント1を入れたのは、当初はそのままGridLayoutを入れていたのですが、Gravityをいじってみたりしたけどだめで、そもそもこいつはどこを基点としているのかなーと思い試しに囲ってみたらうまくいきました。
ちなみにGridLayoutのRelativeLaytoutの関係は、
android:layout_centerInParent="true"になっています。
これプラスAlignParentTop = "true"にすると上ぴったりになります。

以下ソース。レイアウトとjavaを置いておきます。気が向いたらGithubに突っ込んどきます。

2014年4月11日金曜日

画面遷移について

fragmentのバックスタックやActivityの遷移などをいれるとどうしても画面がちらつく。
目には負担でしかありません。見たくなくなります。
UXの話になるけども、目が辛くなるような遷移はだめだと思う。

ソフトにすることも可能だけど、本体設定の開発者向けのオプションからアニメーションをカットして通常使用している場合、アニメーションの効果は薄くなる。

じゃあ、どうするかというと設計を見直す。これに尽きる。
えーやだー。
がんばります。

2014年4月6日日曜日

NoUIFragmentの使い所

FragmentはUIを持つものとUIを持たないものがある
ご存知の方も多いと思う。

このUIを持たないFragmentは使い所でちょっと厄介なところがある。
Activityの遷移が絡む場合だ。

永続データをキーにするならまだしもBundleであれこれやろうとすると失敗する。
Loaderの戻り値をBundleに入れて、NoUIFragmentからActivityの再起動を試みたところエラーが出た。Activityのライフサイクルにひっかかったようだ。
ランチモードはデフォルト。使用したメソッドはActivityクラスのrecreate()。

試しにNoUIFragmentではなくActivityのonActivityResultでrecreate()を使用したところ、Bundleの値を保持してonCreateが呼ばれた。

Activityの遷移が絡むところではNoUIFragmentは避けようと思った。

以下、おまけ。
テストで使ったBundleを保持できるActivityの再起動のソース。

2014年4月2日水曜日

備忘録:GridLayoutを動的に作る

2014年3月25日火曜日

特許権の帰属先はどうなるのか

寝るか。と思ってニコニコを開いてちらちら見てたら、
『社員の発明、企業のものに』
(時事通信社 http://www.jiji.com/jc/c?g=eco_30&k=2014032400837)
という記事があった。
そういえばダイオードの特許で一悶着あったね。

内容を見てみる。
議論を始める段階だけども、特許は企業に帰属する方向でやるらしい。

研究設備とかそれに伴う費用、人材とかは確かに個人では捻出するのが難しいから、企業にもそれなりに言い分はあると思う。
一方、実際にあれこれ研究したりする人としては、個人のアイディアや費やした時間というのがあるので、これもまた一理あると思う。

実績作ってヘッドハンティングか途中でヘッドハンティングか旧ソ連みたいな結末になりかねないような気がいたしますが大丈夫でしょうか。

双方、出せるものを出してできた結果なのだから、会社+実行グループで分割できたほうがいいと思うけどなぁ。
そうすると総合職とかの事務職ってインセンティブとかないね。会社に入った利益分をボーナスに一部転嫁するようにすれば丸くなるかな。
金のかかる話は簡単だけど、金のかからない話は難しいね。

「A rolling stone gathers no moss.」
さて、どっちだろうね。

2014年3月24日月曜日

そんなこんなでホームアプリを作ってます。
空いた時間でこつこつがんばっとります。

ぽへーっとしながらレイアウトをテストしてます。
で、たまたま本体の方の文字の大きさを変えられることを知りました。
使用している端末のバージョンは4.0.4です。

文字を大きくしたらアイコンのラベルの文字が見切れとる。。。
これは不細工だな。。。
ほかのはどうなんだろうとほかのホームアプリも開いたところやはり見切れていた。
ふーん。

んで、ぱっと思いついたのが3つ。
1.TextViewクラスをOverrideして独自クラスを作る
2.フォントサイズでは「sp」を使わずに「dp」を使う
3.TextViewクラスを真似て独自Viewを作る

1はそれなりに心当たりがあるし、できそうだけど"全部"動的に作ることになる。
2はAndroidのガイドラインから逸れるが大きさには左右されない。
3はやだめんどくさい。

上品にやるなら、
端末の大きさ(縦横の実サイズ)に応じてscaleを変更させるように組めばいいのかな。
スマホレベル(5inch<=本体)を1として、
ファブレットレベル(5inch<本体>=7inch)で1.5倍。
タブレットレベル(本体>7inch)で2倍とか。

アイコンの大きさ(ラベルがある時は36dp)は48dpにしてるのだけど、
思い切って72dpくらいとってみようかなぁ。。。

んーでも、トータル48dpを覆すほどの理由はないのよねぇ。
かといって、アプリを起動する"顔"はできる限りいじりたくない。
画像48dpとフォントサイズを10dpくらいにしてみようかな。

思い切ってユーザーに丸投げするのもありか。
どうせ設定はロードするし、セーブするし、キャッシュするし。

2014年3月14日金曜日

ホームアプリのサンプルを探して三千里・・・では足りないかw

そんなこんなでサンプルを探しました。

行き着いた先が
https://android.googlesource.com/?format=HTML
上記のページにずらーっと置いてある。

その中でAndroidOS標準のホームはバージョン毎にある。
Lancher(android-1.6_r1~android-2.1_r2.1p2)
https://android.googlesource.com/platform/packages/apps/Launcher/
Lancher2(eclair-release~kitkat-release)
https://android.googlesource.com/platform/packages/apps/Launcher2/
Lancher3(android-4.4_r0.9~android-4.4.2_r2)

4.0、実機は4.0.4から使えるランチャーを取り出したいのでLancher2を取り込む。
環境はwindows7です。
以下、手順。
インポートでGitからプロジェクトを選択。
cloneURIを選択。
ロケーションのURIを
https://android.googlesource.com/platform/packages/apps/Launcher2
に設定。
そうするとブランチがずらーっとある。
とりあえずmasterのみ選択してみる。
ロードが終わり、新規プロジェクトウィザードを使用を選択。
完了を押して、既存コードからのAndroidプロジェクトを選択。
ルートディレクトリは「gitフォルダ」にある「Lancher2」を選択。
テストとアプリケーションのプロジェクトがあるのでアプリケーションのみチェック。
好みでワークスペースにコピー。

さて、終わったのでどんなもんかとwktkしたが、
使用するソースを4.0にしていたのでエラーが520個も出た。
じゃあ、最新の4.4でビルドしてやんよ。
エラーが2個出た。
Description Resource Path Location Type
インポートされた com.android.common は見つかりません Launcher.java /Launcher/src/com/android/launcher2 行 98 Java 問題
たぶんこいつがあればいいんだろう。

が、こちらは4.0から使えるのが欲しいので、ほかのブランチを試してみる。
ics-factoryrom-2-releaseエラーあり
ics-mr0エラーあり
ics-mr0-releaseエラーあり
ics-mr1エラーあり
ics-mr1-releaseエラーあり
ics-plus-aospエラーあり

・・・。
くまった。

でも、manifest読んで、ソースコードを見れば大概わかるからよしとするか。

内部APIとかごりごり使っているからAndroid丸ごとビルドする必要がある模様。
ぐぐると実際にやってる人もいた。
今の環境ではどうあがいても無理ということがわかったので、やっぱりソース追うか。



備忘録:TableLayoutへの動的なRowの追加とRowへのItmeの追加

ホームアプリのアプリのランチャーを作っていてつまづいた所をメモ。
なぜかレイアウトが崩れる。
Gravityは均等真ん中でレイアウトファイルで規定しているのだが。。。
TableLayoutに動的にアイテムを入れるところ。
アイテムを追加したら空いてるマスにレイアウトで作成したアイテム、LinearLayoutで囲ったImageViewとTextViewを入れるといった感じ。

TableLayoutクラスのLayoutParamsでparamを作り、それをアイテム内のLinearLayoutに.setLayoutParams(param)。
で、適用したLinearLayoutのwidthをLinearLayout ll.width = 0。
その上で、float ll_weight = 1.0f。
そしてll.width = ll_weight。
こうするとレイアウトがきれいに揃った。
Gravityはレイアウトファイルのほうでやっておいてね。

レイアウトファイルでテーブルレイアウトをweightを持たせたLinearLayoutを入れておいたほうがいいと思った。idとか内部で動的に作るよりは静的に用意しておいたほうがいいよね。レイアウトファイルを切り替えるだけで事足りるし。永続データとしてどこに何が入っていたかを保存しておくだけでいいし。

以下、コード。変数名は適宜解釈してください。
LinearLayoutをIdから見つけてきてますが、childAtとかでinstanceof LinearLayout とかするのがめんどうだからやってるだけです。なので、できれば静的なIdを予め持たせたレイアウトファイルを作ると何かと楽だと思います。

2014年3月13日木曜日

既存のホームアプリを参考にいじってみた

そんなわけでばりばりホームアプリを作っています。

機能としては、
壁紙を一枚どーんと貼るのか、スクリーンごとに貼るのか、ドックは別にするのかとかそんな感じのが一つ。
それとドラッグイベントの汎用化。

で、スクリーンにアイコンとかいれるところを作ってます。
ここまでできればとりあえず形になるので公開できそうなのでがんばってます。

スクリーンのレイアウトは十人十色。
縦画面ならX行でY列なんてところです。ウィジェットにも関係してきます。
いろいろいじるよね。タッチしやすいとかしにくいとかあるし。
4×4とか4×3とか4×5とか。はたまた5×4とか。
人によって千差万別なので動的に変更できるように作ります。

アプリのランチャーアイコンはガイドラインだと48dpいっぱいに作ることになっている。
アイコンのスタイルとしてラベルがあってもなくても48dpが個人的にはちょうどいい。
ラベルをいれると全体の大きさが48dpをどうしても超えてしまう。
そんなわけでラベル込みならランチャーアイコンは36dpくらいにすることにした。

ランチャーアイコン同士の余白はできるなら8dpとりたい。

既存のアプリはどうなってんだろうねと思ったので、適当にダウンロード数が多いものをダウンロードしてみた。

無理難題のレイアウト構成にできるようなのでやってみた。
列を10とかやってみた。
ランチャーアイコンがアルミ缶のスクラップみたいな状態になって表示された。
ですよねー。
列を2とかやってみた。
アイコンをドラッグしてグループ化しようと思っても互いに交差するだけでできなかった。
なるほどねー。

んー勉強になる。

2014年3月8日土曜日

消毒だー

モチベーションを上げようということでスマホを初期化した。
不便だわー。まじ不便だわー。
アプリ作る気になりました。

初期化する前にやったことはひとつだけ。
電話帳のバックアップ。
SDカードに電話帳を一旦エクスポートして、初期化が完了したらインポートする形式をとった。
おそらく機種依存のやり方だと思います。
スマホはSHARP製のisw16sh。やり方はSHARPのページにあったよ。
さくさくと初期化と電話帳の読み込みが終わった。
アカウントの関連付けも済ませた。ウィルスソフトも入れた。

それではデバッグ機になっていただこう。
まずはパソコン側にスマホをデータストレージとして読み込ませる製品用のドライバをあてる。
んで、デバック機として使うためのadbドライバをあてる。
これでパソコン側でやることは終了。
次にスマホ。
『設定』から『開発者向けオプション』に進み、『USBデバッグ』にチェック。
同設定から『ロックとセキュリティ』で『提供元不明のアプリ』にチェック。
これで立派なデバッグ機です。

さて、何から作ろうかとぺたぺたといじること小一時間。
ホームアプリつくろう。

webで調べ始める。
SDKのサンプルにホームアプリがあるとのこと。
では早速eclipseにインポート。
で、実機にいれてみる。
機種依存のデフォルトの壁紙が表示されて右下にアプリのランチャーがあるような画面だ。
へーとか思いながらソースを見てみる。
なんか4クラスもある。めんどくさ。
webで簡単なサンプルがないか探し始める。
・・・なかった。というかSDKのサンプルがおすすめされている。
んー読むしかないか。

で読んでみたのだが、よくわからない点がひとつあった。
home.javaにあるfavariteというフィールドをつかったメソッドの役割だ。
favariteというxmlを生成している。なぜに?

勝手な予想で、ホームアプリは起動モードがHOMEならいいんだろー楽勝とか思ってました。
明日から本気出す。


2014年3月6日木曜日

IT業界に就職しようとしてる人に捧げる

AndroidStudioについて検索していたらとある人のブログに行き着いた。

その中で気になるエントリーがあった。
とある業界サイトで掲載された記事についての個人的な見解について述べられていた。
要旨としては「『昔は一攫千金するためにプログラマーになりたかった』という記事があったが、私はそうは思わない。ただ興味をもっておもしろいという快感があったからこの業界に入った」というものだ。

以下、個人的な見解です。
私もそう思う。ただ興味があってこいつはおもしろいねという考えでこの業界に入った。
一攫千金とか頭にないですはい。
一攫千金を狙って入ったという人は果たしてどれくらいいるのだろうか。
仮に一攫千金を狙った人が入ったとしてそのプロジェクトはスタートできるのだろうか。
もちろん会社の運営に関しての費用とか見積もりとかできてるんだよね。
なければそのプロジェクトはできない。

まず、会社とは運営するものである。
運営にかかる費用、つまり人件費や電気代、月ごとの利益、借りているオフィスであれば賃料もつく、平たく言えばその会社が存続可能な金額が必要である。
ここが出せないとそのプロジェクトはスタートできない。
おもしろいかおもしろくないかその前に、会社としてやっていけるかどうかがまず第一です。
企業の大中小に関わらず、これは絶対条件です。
揚げられるならば、人数、期間、その後の展望など揚げられると具体性が増します。
が、実績のない人の言葉には信頼を寄せることができません。
聞かれたら答えるくらいのスタンスでいいでしょう。
自分から切り出すのは時間の無駄です。与えられた時間内で何を出すのかよく考えましょう。
実績もなく信頼も寄せることができない人が時間を与えられたのです。
大事に使いましょう。

次に、利益は作るものではなく、入ってくるものです。
より良い運営というのは自動的にお金が入ってくるルートを開拓することです。
これを実行する手段はいろいろあります。
例えばBtoBでプロジェクトを3ヶ月のものを受け取り、作る。
規模は自社から2人で、売り上げ予想は1人月100万として2人だから200万*3。
これで会社にかかる固定費+若干の利益(貯蓄含む)が得られます。
でも、プロジェクト自体は3ヶ月で終わりです。
では自動で入ってくるルートを作るにはどうしたらいいか。
メンテを請け負う。これもありですが、この厳しいご時勢ではなかなかありません。
困ったね。
これではやっていけない。
どうするかというと、プロジェクトが終わった人にまたプロジェクトをやってもらう。
自転車操業のような形になりますが、これは人の成長によりお金が入ることを意味しています。
とある分野についてやったことがあるというのは大変喜ばれます。
なぜでしょうか。知っていれば予め課題としてあげることでスムーズな進行が期待されているからです。
利益もあがるし、やった人は成長するし、経験した分野の知識も会社に持って帰れる。
こうして少しずつ知識やノウハウを学び、実績という形で会社へ貢献を続けます。

では1年後はどうしましょうか。実績も積んだし、会社にも少しお金が貯まってきた。
じゃあ、プロジェクトを提案しようと考えた人は甘い。
ボーナスとかもあるよね。他の人ももらえたらうれしいよね。
こうして貯金はボーナスという形で消化されます。
もしくは給料の上昇、あるいは一時手当て。

じゃあ、いつ提案できるの?というのは経営者が聞いてきたときだけです。
会社は経営者のものです。利益も全て経営者のものです。
きれいごとを並べる会社や企業も多いけど、社員に還元することで会社としての方針は経営者が常に握っています。
そして経営者は労働者にアドバイスを求めません。
経営者は常に時代からアドバイスを求めます。
経営者がアドバイスを求めてきたら、提案の前に今こういうジャンルがいいんですよーと前置きをおいた上でこんなのどうですかとごり押しましょう。提案は棄却されますけどね。

いつまでたってもできないじゃん。と考えた人は正解。
やりたいことなんていつまでたってもできません。
できることは会社の方針に沿うことができるプロジェクトのみです。
だから、たとえ経営者から聞かれたとしても自分のやりたいことではなく、会社の方針に沿った、利益をより長く見込めるものを揚げるのがベターでしょう。他の分野でも使えるような部分があれば尚良しです。
だから、過去にあったプロジェクトをモデルケースとした提案を用意しておくのがベターです。
会社の成果物を手に取ることができたら、まずはやってみましょう。
受け取りたいのは着眼点です。プロジェクトをこうしようとかあーしようとかいうものではありません。
再利用可能な着眼点が欲しいのです。

そんな日本だからどんどんガラパゴス化するんだけどね。
労働者になる教育しかしないから経営が育たない。
自分でやるより、事を成すのにはどうしたらいいのかなんてものを人生を通して教育しない。
振り返ってみれば日本が時代を作ったものなんてあっただろうか。
一つとしてない。
TwitterもMicroSoftもFacebookも会社として成る前に、アマチュアでも何でも経営経験があった。
こうした動きは日本でもある。もちろん知っている。だが、ほんとにごく少数だ。学校を巻き込んでのムーブメントを起こす、起こさせるものではない。あくまで「遊び」の延長でしかないのが現状だ。
アイディアはとてもいいのにそれを運営できない。より多くの地域を巻き込めない。難しさがそこにはあるからだろう。有料、無料というのもあると思う。便利であるという実績を作れていないのが致命的だ。

UNIQLOとかTOYOTAとかはお金ありきだから、社会に広がるようなイノベーションは起こせていない。安くて機能的な服や、ecoな車というのは時代にキーワードとして存在するから利益が上がった。しかし、人々を熱中させる革命的なものではない。そして時代に沿うものだから時代が必要としなくなったら廃れる。現に車という業界は前ほどの革新性は出せない。物の寿命というサイクルの中で利益を出すことはできるが、イノベーションという点ではさっぱりといっても良い。

一方、TwitterやMicorsoftやFacebookはどうだろうか。
陰りは見えるものの、常に何かを出している。記憶に新しいのはツールとして出てきたLineだが、セキュリティや若年層での刑事事件の誘発が危なすぎる。Facebookもこれと同じ落とし穴に入っている。インターネットでの閉鎖的な社会が築かれてしまったのが問題だろう。手軽さが売りのTwitterには及ぶべくもない。Microsoftもいろいろ出してるけど、ヒットしない。普及にともない需要が減った、求められている機能が煮詰まってきたからだろう。情報を提示しそれを享受するというのが共通のモデルだが、その情報の入り方出方、使い方に違いが見受けられる。

閉塞的な時代だけど、次は何がヒットするんだろうか。
私は技術的な革新よりも、その前段階として『時間の使い方』を変える、変えさせるツールがヒットするんじゃないだろうかと考えている。Twitterはそういった要素も持っているからしばらくは伸び続けるだろう。できるだけ短い時間で、かつ自分が何かアクションを起こさなくてもやってくれているもの。

これが現代が求めているものです。ある行動にかける時間が減れば、その分時間は空くよね。
その時に、人は何をするのか。これがネクストムーブメントになるんだろうな。

AndroidStudioの導入までやってみようてきな何か

というわけで新規のマシーンにAndroidStudioいれてみよう。
21:00
AndroidStudioをhttp://developer.android.com/sdk/installing/studio.html#Updatingからダウンロード。終わったら展開。
21:06
展開完了。起動。JDKがないよと怒られた。
じゃあいれよう。http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
64bitマシーンだけど32bit版のJDKを入れる。64bitで競合とかあるといやだしね。
x84とかついてるのをいれる。これが32bit版。
システムの環境変数にjavaのbinのある場所を追加する。
AndroidStudioを32bit版で起動。
起動すると『豆芝』が言いそうなTIPSが表示された。さらっと見て閉じる。

21:27
とりあえず開発自体はできるようだ。
しかしこのUI見慣れないなー。


新規のマシーンにandroid開発環境いれてみた

マシーンが新しくなったのでandroidの開発環境を新規に構築しました。

今回作った環境はwindows7 64bit homepremiumでeclipse4.3です。

以下手順です。
eclipseはpleiadesからeclipse4.3FullEditionをダウンロード。
適当なフォルダに展開。

完了までの時間が長いのでSDKをダウンロードしにいきます。
SDKを公式Android Developerサイト(http://developer.android.com/sdk/index.html)内の項目『USE AN EXISTING IDE』から『Download the SDK Tools for Windows』をクリックしてダウンロード。
適当なフォルダに展開。
SDKが展開できたらウィンドウが開かれます。
ここでこれから使っていくであろうAPIをダウンロードします。
『Tools』と『Extras』、そして『Android4.0』から最新のもの(現時点では『Android4.4.2』)にチェックをいれてインストール。

これも完了までが長いのでeclipseのプラグインとして使うADTのアドレスを調べにいきます。
公式Android Developerサイト内http://developer.android.com/sdk/installing/installing-adt.htmlにアドレスが書いてあります。
アドレスは『https://dl-ssl.google.com/android/eclipse/』。さらにページを読むと、だめだったら「https」じゃなくて「http」にしてみてねと書かれてあります。他にもzipで配布してるようです。

eclipseの展開は終わったでしょうか。
eclipseの展開が終わったらさっそく起動。
今回はeclipseの紫のアイコンから起動します。

eclipseが立ち上がったら上部にある項目の『ヘルプ』から『新規ソフトウェアのインストール』をクリック。
表示されたウィンドウの右上部にある『追加』をクリック。
先ほど調べたADTのアドレスをいれましょう。名前はADTとか見てわかるものにしましょう。

『OK』をクリックするとeclipseが使えるプラグインを探しにいきます。
『開発ツール』ともう1件表示されます。
『開発ツール』だけにチェックをいれてダウンロードしましょう。
途中でwindowsがこいつらいれていいのかい?と聞いてくるので容赦なくOKを押します。
プラグインのインストールが終わったら再起動しますか?とeclipseが聞いてくるので今はキャンセル。

SDKのインストールなどは終わったでしょうか。
入らないものもあるのでそれはそれでいいです。たとえばIntelのイメージファイルとかは使用しているCPUに応じてインストールできたりできなかったりします。私はAMDなのでこいつらは入りません。

SDKのAPIのインストールが終わったらeclipseもSDKも閉じましょう。
そしてeclipseをクリーンコマンドで起動します。
『eclipse.exe -clean.cmd』というのが先ほどeclipseを起動したフォルダ内にあるのでそちらから起動します。新しいプラグインなどを入れた場合はこのクリーンコマンドで起動したほうがいいでしょう。

もしもSDKマネージャーなどがメニューに表示されていない場合は表示しておきましょう。
メニューの『ウィンドウ』から『パースペクティブのカスタマイズ』をクリック。
表示されたウィンドウ内のタブの『ショートカット』の『サブメニュー』で『新規』が選択されている状態で、『ショートカット・カテゴリー』から『Android』の項目をチェックしてOKをクリック。
表示されなかったら、eclipseをクリーンコマンドで起動してください。

これでとりあえず開発はできます。
だいたい完了までの所要時間は30分くらいかな。
日々、使用しているプラグインやSDK内のAPIのアップデートを確認しましょう。
プラグインの更新はメニューバーのヘルプ内にあります。
SDK内のAPIのアップデートはSDKマネージャからできます。

さぁ、次はわけわかめのAndroidStudioだ。。。

蛇足です。
今時のMainAcitivityはFragmentからスタートなのね。
同一クラスってのは個人的にもにょるなー。
ActivityとFragmentは別物っていう意識付けとかそういう作り方しましょうねみたいなガイドライン作ったほうがいいんじゃないだろうか。

2014年2月9日日曜日

おれはやりたいことをやるぞジョジョー!

時間がとれるようになりました。
あけましておめでとうございます(遅

textureviewのほうはだいぶ間が空いてしまった。
すっかり忘れてしまったよ。。。

とりあえず直近でやりたことを箇条書き。
・eclipseのプロジェクトの整理
・contentproviderを使用したプロジェクトのアップ
・contentporviderを外部アプリから読み取るプロジェクトのアップ
・twitterを使ったTODOリストの検討
・twitter4Jを使ったテストアプリの作成
・第12回MMD杯予選の動画を見る(待て
・Evernoteの内容をブログやtwitterに反映するかどうか検討
・AndroidStudioの導入

やりたいことが多いな(汗

twitter4Jのアプリをgithubにあげちゃうとキーが丸分かりだからアップはしない方がいいかな。。。他の人はどうやって管理してるんだろ??stringsの内容だけignoreするのかな?キーがわかれば実質乗っ取りみたいなことできちゃうよね。

textureviewのほうはopenGLES2.0以上の体系的な勉強をしたほうがいいかもしれない。参考になるサイトやらなんやら探しなおす。でもこれはやりたいことが終わってからかな。

AndroidStudioだとライブラリの自動更新ができるようなので試してみたい。Maven?というものを使うそうだけど、よくわかってないので調べながらだな。