Androidアプリ開発日誌 3日目
AndroidStudioで新しくプロジェクトつくったら、MainActivity のレイアウトが ConstraintLayout になってました。
よく分からないのでお勉強しておきます。
ConstraintLayout
調べてみたら、2016年に追加された新しめのLayoutでした。
開発者用のページいわく、
ConstraintLayout は、Android Studio 2.2 以降に含まれている Constraint Layout ライブラリで利用できるビュー グループです。ConstraintLayout は Layout Editor とともに一から構築されているため、デザイン エディタからすべての要素にアクセスすることができ、XML を手動で編集する必要はありません。特に ConstraintLayout の制約ベースのレイアウト システムでは、ビュー グループをネストすることなく、ほとんどのレイアウトを作成することが可能です。
Layout Editor による UI の作成 | Android Studio
つまりLinearLayoutとかRelativeLayoutなんて必要なかったわ!とりあえずConstrantLayout使っとけ!という優れもの。
動画で使い方もまとめてくれてます。日本語字幕あるの便利。感謝。
基本的な使い方は
- 使い方1: Paletteから使いたいビューをドラッグ。
- 使い方2: 上下左右の丸ポチをドラッグして画面端なり、他のビューにつなげる。
- 使い方3: 「マグネット」マークは「Turn On/Off Autoconnect」。有効にしておくとPaletteからドラッグした時点で勝手にConstraintsはってくれる。
- 使い方4: 「矢印+バツ」マークは「Clear All Constraints」。Constraintを消去する
- 使い方5: 「キラキラ」 マークを「Infer Constraints」。適当に置いたビューに対して賢くConstraintsはってくれる。これが一番便利。感動する。
という感じかな。
↓の記事が画像付きでわかりやすい。
Androidの新しいLayout、ConstraintLayoutことはじめ - Qiita
ConstraintLayout 使ってる限りは XML の中身を見る必要なさそうだけど、多少は知っておきたいので
これ見て勉強しておきます。
Androidアプリ開発日誌 2日目
1日目はこちら Androidアプリ開発日誌 1日目 - ネガティブログ
今日は開発する時間とれなかったので、開発環境であるAndroidStudioの整備をしてました。
- プラグイン追加
- エディタのフォント変更
プラグインの追加
Vimキーバインド使いたかったので IdeaVim というプラグインを追加しました。
プラグインの追加方法をメモしておくと
File > Settings > Plugins > Install JetBrains plugins (下の方にあるボタン) にいって、IdeaVimを検索。 Installボタンを押して再起動すればOK。Vimのキーバインドが使えるようになります。やったー。
エディタのフォント変更
Myrica という日本語対応フォントが評判よろしいので入れてみました。
1〜3はターミナル上で実行です。
下のページにある Myrica.ttc zip圧縮版をダウンロードして展開。
プログラミングフォント Myrica / Estable | Myrica (ミリカ)は、フリーなプログラミング用 TrueType フォントです。
/usr/share/fonts/truetype/
にMyricaというディレクトリ作って、展開された Myrica.TTC をその中に移動する。(要root権限)fc-cache -v -f
というコマンドでフォントリストを更新。- AndroidStudioの File > Settings > Editor > Colors & Fonts > Font を開く。
- [Save As] を押して適当なスキーマを作成。
Show only monospaced fonts のチェックを外して、Primary font に Myrica M を選択する。フォントサイズはお好きなように。
ちゃんと全角文字が半角文字の2倍幅になってるのも確認できました。
参考サイト:linux - A font doesn’t appear in IntelliJ’s dialog of choosing a font - Stack Overflow
日本語がインライン入力できないんだけど一旦放置しときます。
Androidアプリ開発日誌 1日目
はじめに
Androidアプリの開発をやってみたいなーと前々から思っていたので始めてみました。
以前も同じように考えては入門書読んで挫折してたので、今回は開発日誌をつけつつがんばってみます。
目標は3〜4ヶ月くらいで何かしら単純なアプリをリリースする。ということにします。
開発環境の準備
手元の環境は
です。
AndroidStudioのLinux版は「Android Studio と SDK ツールをダウンロードする | Android Studio」にありました。
プロジェクトの作成
特別なことはせず、EmptyActivityを選択してプロジェクト作成。
.gitignoreファイルをGitHubから取ってきてプロジェクトのルートフォルダに置いておきます。
wget https://github.com/github/gitignore/blob/master/Android.gitignore ${PRJ_ROOT}/.gitignore
Fragmentの実装
今日はFragmentの実装を試してみました。
最近(?)のAndroidアプリはActivityに大きな役割はもたせず、代わりにFragmentがViewを管理したほうがいいらしいです。
まずは上を参考に、上のリンクにある「レイアウトファイルからFragment追加する方法(静的な追加)」と「コードからFragmentを追加する方法(動的な追加)」のに種類を試してみました。
動的なFragment追加は、あらかじめActivityのレイアウトファイルにLinearLayoutというコンテナ(入れ物)を置いておき、そこにFragmentを追加するって形になるんですね。へー。
今日は力尽きたんでこのへんでおしまいです。
Pythonで複数の配列を同時にソート
Python使ってて、複数の配列を同時にソートしたくなることありますね。
たとえば、キー配列をもとに値配列をソートしたいときとか…
そんなときはzip
をうまくつかってください。
a = [2, 0, 1] b = ["a", "b", "c"] # zipで二つの配列を統合 c = zip(a, b) c.sort() # 統合していた配列をもとに戻す a, b = zip(*c) print(a) print(b) # (0, 1, 2) # ('b', 'c', 'a')
結果を見ると配列a
をキーにしてソートされていることがわかります。
結果がタプルで得られてることに注意しましょう。
ちなみに、配列が3つ以上でもzip(a, b, c, …)
と増やしていけばOKです。
もしソートに使うキー配列を変えたい場合には、itemgetter()
を使うとよいです。
from operator import itemgetter a = ["a", "b", "c"] b = [2, 0, 1] c = zip(a, b) # itemgetterには何番目の配列をキーにしたいか渡します c.sort(key=itemgetter(1)) a, b = zip(*c) print(a) print(b) # ('b', 'c', 'a') # (0, 1, 2)
これでいくらでも好きにソートできますね!以上!