主催・運営した エムスリー x Gunosy Beer bash! の発表資料です^^ gunosy-beer.connpass.com/event/22825/

モバイルDevOpsカレンダーの2日目です。 お仕事では Android を書いているので、 Android の DevOps について書こうと思います。 開発と運用の苦しみ 一日目に tnj さんが書いてくださいました通り、 モバイルの開発・運用をする上で、我々エンジニアが目指すところがあります。 全ての 人間に頼らず解決できる仕事 を生まれる前に消し去りたい。 我々開発者は、なぜか日々苦労してコードを生産しています。 そして、のちのちにそのコードのメンテナンスで苦しむ羽目になります。 苦しい思いはしたくない!! 何が我々を苦しめるんだ!?!?! 我々が書いたコード だ!!!! となれば、そう、 メンテナンスすべきコードがなければ苦しまずに済む のです! 人間が書いて管理するコードが減ればいい! でもプロダクトが出来上がらないとお客様に価値提供なんてできない! 収入もない、生きて行けない
ちょっとでもJava7なAndroidを気持ちよくプログラミングしたい、 Javaっぽい(?)ところがありつつもモダンなパラダイムが取り入れられているScalaが羨ましく見えたので、Scalaっぽく書きたいという意志から書いています サンプルコードでは紙面の都合上、retrolambdaでlambda式使っています Scalaの羨ましいところ 挙げればキリが無いですが、以下とします 関数型プログラミング 強力な式 関数型プログラミングっぽく これについてはRoppongi.aar #2 - connpassで私が発表した内容がベースとなっています OOなjavaで無理して関数型プログラミングを目指すのではなく、関数型プログラミングの中でもモナドといわれる便利なデータ構造を便利に使いたい、といった程度のものです そこで、Androidでもモナド実装して使えば気持ちいいんじゃないか、ということ
I have an Activity in Android, with two elements: EditText ListView When my Activity starts, the EditText immediately has the input focus (flashing cursor). I don't want any control to have input focus at startup. I tried: EditText.setSelected(false); EditText.setFocusable(false); No luck. How can I convince the EditText to not select itself when the Activity starts?
やつを追う前に言っておくッ! おれは今ViewPagerをほんのちょっぴりだが体験した い…いや…体験したというよりはまったく理解を超えていたのだが…… ,. -‐'''''""¨¨¨ヽ (.___,,,... -ァァフ| あ…ありのまま 今 起こった事を話すぜ! |i i| }! }} //| |l、{ j} /,,ィ//| 『おれはViewPagerを入れていたと i|:!ヾ、_ノ/ u {:}//ヘ 思ったらいつのまにかViewPagerしていた』 |リ u' } ,ノ _,!V,ハ | /´fト、_{ル{,ィ'eラ , タ人 な… 何を言ってるのか わからねーと思うが /' ヾ|宀| {´,)⌒`/ |<ヽトiゝ おれも何をされたのかわからなかった… ,゙ / )ヽ iLレ u' | | ヾ
はじめに FragmentのonAttach(Context context)メソッドを使うときに、少しハマったのでメモ。 onAttach(Activity activity)とonAttach(Context context) API Level 23より前では、onAttach(Activity activity)を使っていたのですが、このメソッドはAPI Level 23で非推奨になりました。 これの代わりにonAttach(Context context)というメソッドが登場したので、API Level 23以上ではこれを使うことになります。 Support LibraryのFragmentの場合 android.support.v4.app.Fragmentを継承しているFragmentの場合、onAttach(Context context)が実装されているので、以下のように
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? Android 5.0がリリースされアプリケーション開発を行う際に、改めて Android アプリの基本である Activity について再確認してみようと思いライフサイクルを調査してみました。 標準的なライフサイクル Android Developers では [Activity Lifecycle] (http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle) は以下のように説明されています。 この図では基本的な Activi
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? あくまで個人意識のため、内容はほとんど引用メイン Android開発時のコード規約に関して、自分なりに噛み砕いて理解するために記す コード規約の在り方 Androidでもチームで開発する際、開発メンバーが決められたコード規約に基づいて実装しないと、可読性などが失われ単体テストや結合テスト、ソースレビューにも影響が出てくる PHPやObjective-C、もちろんJavaにもデフォルトのコード規約は存在する Androidの時はどうすればいいのか 私の結論としては「Android Open Source Project」にある Code
ActivityとFragmentのライフサイクルを意識しなければならない状況で、 思っていたライフサイクルとは異なるフローで呼ばれていたため、 調査をしてみました。(主に破棄周り) The lifecycle of the activity in which the fragment lives directly affects the lifecycle of the fragment, such that each lifecycle callback for the activity results in a similar callback for each fragment. For example, when the activity receives onPause(), each fragment in the activity receives onPause(). 上
一人でプログラムを書いてたりすると、環境によってはあまりコードの書き方には指摘を受けなくて困りますよね。プロになっても、曲がりなりにもちゃんと動くコードを書けてしまうとあまりに当たり前のことなんかは指摘されることも稀で、そのままある程度偉くなっちゃった日には、もはや自分で気付くしかなくなってしまいます。 FindBugsとか、Effective Javaなら使ったり読んでみたり読ませたりすることはできますが、それ以前のところって難しいんですよね。よいコードと言うよりそれが当たり前だと思われているので、指摘するにしても「こうすればいいよ」(アドバイス)じゃなくて「なんでこうしてないの?」(詰問)になってしまいがちです。 そこで、最近そういうJavaニュービーに指摘している(したい)ことの多い、Javaの基礎的な事柄をまとめてみました。ワタシJavaチョットデキルって人は、これ以外にもやりがち
はじめに Gingerbread から Android を触り続けて、たぶん5年くらい。 ネイティブのアプリ作るのは困らないくらいの Android エンジニアになりました、わーい。 で、この間お仕事でちょっと WebView を触らなければいけなくなった。 まぁいろいろ噂は聞いていたんだけど、 「結局のところ、ビューに HTML 設定するだけっしょ?余裕っすわ!」と舐めきっておりました。 もうね、大変だった。 大変だった! ということで、困ったポイントをメモしておきます。 やりたいこと 動的に HTML を生成 WebView のサイズにスケーリングして表示 リンクをタッチしたらブラウザアプリを起動 困ったポイント1. 謎のパディング じゃあ、とりあえず WebView に HTML を設定してみよう!と実装して、ファ!?ってなったのがコレ。 コンテンツに謎のパディングが発生する…。 お
今回はカスタマイズした ListView に CheckBox を乗せたときの on/off 切替を行選択時に行う方法の紹介。 ListView(の項目)にCheckBoxを乗せた場合、CheckBoxのon/off切替はCheckBoxをクリックした時だけになります。 しかもCheckBoxが項目のフォーカスを奪ってしまっているため、onItemClickイベントが発生しなくなっています。 そこで、CheckBoxが項目から奪っているフォーカスを項目にお返しし、onItemClickイベントでCheckBoxの on/off を切り替えるようにします。 これはレイアウトの <CheckBox> に以下の2つの属性を追加することで対応できます。 android:clickable="false" CheckBoxにフォーカスを当たらなくし、onItemClickイベントを発生するようにしま
public static void StartBackgroundWork() { Console.WriteLine("Shows use of Start to start on a background thread:"); var o = Observable.Start(() => { //This starts on a background thread. Console.WriteLine("From background thread. Does not block main thread."); Console.WriteLine("Calculating..."); Thread.Sleep(3000); Console.WriteLine("Background work completed."); }).Finally(() => Console.WriteLi
クラス名には、多くの場合"名詞"を用います。メソッド名の場合は動詞や助動詞を用いて命名しましたが、クラス名は何かしらの責務を持つモノとして捉えるため、名詞を用いることになります。 一方、インタフェースの宣言をする場合、そのインタフェースの名前に"形容詞"を用いることがあります(例:Iterable、Closeable等)。形容詞を用いることで、クラスの持つ性質を説明的に見ることができるようになります(Iterableな配列のList実装 -> ArrayList等)。 この記事は、どのような名詞や形容詞がクラス名やインタフェース名として用いることが出来るかを一覧し、できるだけクラスやインタフェースの役目を端的に表せるようなリファレンスとして活用できるものを目指していきたいと思います。 自分自身がクライアントアプリケーションのバックグラウンドを持っている為、多分にそこで用いる命名方法が含まれ
Photo by Oferico 皆さんはアルゴリズムやデータ構造について勉強したことはありますか?そして、基本的なアルゴリズムについて、どのようなものがあって、どのようなときに使うとよいかといったことを説明することができますか? 仕事をしていると、プログラミング言語等の勉強や業務に忙しくて、正直アルゴリズムどころではないという場合がほとんどでしょう。しかし、いつか勉強しようと思っていたけど、基本的なアルゴリズムにどんなものがあるのかなんて今更聞けないな……ということもあるかと思います。 今回はそんな方に向けて、基本的なアルゴリズムの一部の概要に加え、アルゴリズムの勉強に役立つサイト、書籍をご紹介したいと思います。 ■アルゴリズムを学ぶ意味 例えば、ソート等については、通常はすでにソート関数があるので、自分で作らなくても済む=アルゴリズムも勉強しなくていいと思ってしまうかもしれません。しか
AndroidでQRコードの読み書きをやることになったんだけど、実は今までやったことがなかったのだ。 AndroidでのQRコード読み書き自体はもう色んな情報がネットにあふれており、Zxingを使えばいいというのはわかっていた。 github.com でも、この手の情報は比較的初期に書かれていて、もう少し最新情報でやれないかなと調べていたらこんなものを発見。 github.com 既にいくつか使った紹介記事もあったんだけど、 Android - ZXingで、QRコードを撮れる - Qiita Android StudioでZXingを使う。 - ちょこっと、めも。 少し違う内容が書けそうなので記事にした。 使ってみよう 環境 OS Windows 10 pro Java 1.8.0 Android Studio 1.2.2 プロジェクトへのライブラリの追加 以下を追加するだけ。 app/
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く