なぜRxJava? RxJavaは様々な特性を併せ持ったライブラリですが、簡単にまとめると以下のような機能に分類されます。 List処理の抽象化・ストリーム化 Optional Future/Promise Data Binding Event Bus Android開発でRxJavaをチームに導入した話 Java 8ではStream APIやOptionalが導入されていますが、Androidや業務要件などそのAPIを使えない環境も存在します。 また、非同期や並列などそもそもJavaで扱いにくい処理を、統一されたインターフェイスで簡潔に記述できるなどのメリットも多く、その基本的な機能を試してみたので紹介します。 なお、ここに記載する内容はRxJavaの使い方が中心で、RxJava自体の概念やFRPなどについては、他にも多くの方々紹介してくださっていますので、そちらをご覧いただければと思い
About the content This talk was delivered live in July 2016 at 360 AnDev. The video was recorded, produced, and transcribed by Realm, and is published here with the permission of the conference organizers. As Java 8 features come to Android, it’s important to remember that every standard library API and language feature comes with an associated cost. Even as devices get faster and have more memory
qiita.com これの話。ブコメに書こうとしたら4000字は入らなかった。 Microsoft Java VM かつての WIndows には MS 製の Java VM が搭載されていました。 古代の Java は「Write once, run anywhere」を掲げていた通り、クライアントサイドで Java アプレットとして利用されるのが主流でした(サーバーサイドで動くようになって、真価を発揮した感じがあります)。 しかし Java VM の仕様は、パフォーマンスについての記述は曖昧になっており、OS ごとの実装の違いによって、実行速度に顕著な差がありました。 Windows の Sun 純正の Java VM は性能が悪かったため、MS は独自の Java VM を開発し、Internet Explorer にバンドルしました。調子に乗った MS は Windows GUI
RxAndroidとRetrolambdaで大体Java8をAndroidに持ち込む - visible trueから1年以上経過して界隈も色々更新されていってます。ということでイマドキのJava8環境構築をメモします。 バックポートライブラリとJava8の機能 バックポートライブラリとそのライブラリがカバーするJava8の機能を列挙します Retrolambda or Jack ラムダ式 メソッド参照 Lightweight-Stream-API Stream API Optional ThreeTenABP Date and Time API 実現不可の機能 次の機能はバックポートライブラリ等では実現不可能です*1。 interfaceのデフォルト実装 interfaceのstaticメソッド build.gradle 次の設定はRetrolambdaを使っています。そのまんまコピペで
全国のネイティブアプリファンに向けての煽り記事: WindowsだってMacだって、この子だって、インテル入ってる! https://www.youtube.com/watch?v=Os_oRR8Ynb8 ということで、クロスプラットフォーム開発環境をインテルのMulti-OS Engine Technology Previewで整えてみることにした: 少なくとも来年5月までは無償で使える、JVM->スマフォ環境(iOS・Android他)へのクロスプラットフォーム開発環境! インストール開始...おっと、android studioは最新のものにしてからにしよう。 Android環境のアップデートが超重いので、Multi-OS Engineのリリースノートちら見しつつ、以下を軽く日本語で紹介: Multi-OS Engine(あくまでテクノロジプレビューだからね) JavaでiOSとAn
自分の所属している京大マイコンクラブ (KMC) では毎年3月に春合宿を行っており、60分ほど講座を行います。 今年は iOSアプリ作成入門 を行いました。 speakerdeck.com また、書いたけど没になった Android 編も公開しました。 speakerdeck.com iOS 編 これは僕が最近 iOS / Swift に入門したのをまとめたものです。 元々 Android だったのを iOS に変更したので、ほとんど宿についてからアプリもスライドも作ることになりました。*1 TableView のあたりは Android の RecyclerView と変わらないので一部流用できました。 SpeakerDeck だとリンクが効かないみたいですね... 本来は SlideShare に上げたかったのですが日本語がうまくレンダリングできない不具合が出ているらしく Speake
追記: StreamやOptionalはpreview-2で実装されたようです。 gfx.hatenablog.com Android N previewが公開されましたね!このバージョンではJava8のサポートがあると発表されています。また、標準クラスライブラリがOpenJDKベースの実装になったことで、Java8との互換性が高まるのではないかという前評判もありました。 First Preview of Android N: Developer APIs & Tools | Android Developers Blog 本エントリでは、この「Android NでJava8」について解説します。 三行まとめ Android N runtimeはOpenJDK7ベースで、Java8クラスライブラリは一部のみ移植されている Android N SDKに同梱されているJackコンパイラはlam
このエントリでは、Androidアプリケーションにおいて、難読化が施されていない場合、脆弱性にあたるかについて議論します。 はじめに Androidアプリケーションは主にJava言語で記述され、DEX形式のファイルにコンパイルされたコードを、DalvikというJava互換VM上で実行します。DEXおよびAPKファイルの仕様は公開されており、DEXにはクラスやメソッド等のシンボル名も含まれているため、リバースエンジニアリングが容易であると言われています。このため、Android SDKには標準でProGuardという難読化ツールが添付されています。 それでは、難読化の目的はそもそも何で、難読化でその目的は達成されるのでしょうか。 難読化の目的 Webアプリケーションの場合は、重要なロジックは主にサーバー側に存在するため、ソースコードを外部から取得することはできません。これに対して、スマートフ
Android Javaでは昔からAOSPのcoding style guidelineに則ったスタイルがとられることが多いようです。そのなかで、private fieldに "m" (member) や "s" (static member) などのプレフィクスをつけよ、というものがあります。 AOSP Java Code Style for Contributors | Android Open Source Project これはいわゆるハンガリアン記法の変種で、こういうやつですね。 class Recipe { private String mTitle; private List<String> mSteps; // ... } これについての態度はプロジェクトごとに様々ですが、たとえばクックパッド社のJavaのスタイルガイドでは明確に否定しています。 styleguide/
はじめに Androidではモバイル端末での処理に最適化されたいくつかの代替クラスが用意されています。 ほとんどがHashMap関係のメモリ消費を抑えるためのものですが、Android Developersにも代替クラスをまとめたページはないようなので、知っている範囲でまとめてみました。 SparseArray 似ている機能:HashMap<Integer,T> SparseArrayはAndroid向けにパフォーマンスが改良されたHashMap<Integer,T>の代替クラス。 Supportライブラリに最新のSparseArrayと同じ実装になったSparseArrayCompatがある。 http://developer.android.com/reference/android/support/v4/util/SparseArrayCompat.html LongSparseAr
Google confirms next Android version will use Oracle’s open-source OpenJDK for Java APIs Google is replacing its implementation of the Java application programming interfaces (APIs) in Android with OpenJDK, the open source version of Oracle’s Java Development Kit (JDK). The news first came by a “mysterious Android codebase commit” from last month submitted to Hacker News. Google confirmed to Ventu
ヤフー株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。LINEヤフー Tech Blog こんにちは、ヤフーでAndroidアプリ開発をしている松田(@shoma2da)です。 今年もやってきたヤフーのアドベントカレンダー、僭越ながらトップバッターを務めさせていただきます! 初日となる今日は最近話題になっているKotlin(ことりん)という言語を使ったAndroidアプリ開発と、これに関連してヤフーが新技術にどのように向き合っているかについて書いていきます。 Kotlinとは Kotlinは2011年頃に登場した言語で、開発元はJetBrainsです。 JetBrainsといえばAndroid StudioのベースであるIntelliJを開発している企業でもあります。 ソースコードはOSSとして公開されておりGitHu
この記事は、先日の potatotips #22 では説明しきれなかった部分を補足するものです。potatotips #22 でのスライドは Regular Expression in Android And Java です。 おさらい Pattern | Android Developers Java の正規表現 Patternクラスを用いて、正規表現文字列をコンパイルしてマッチする処理を描くことになります。Stringクラスには一部便利なメソッドがあり、正規表現文字列を渡してマッチするものに処理を施す事ができるようになっていますが、あまり複雑なことはできないため、Stringクラスで提供されている以上のことをする場合はPatternクラスを用います。 Java の正規表現は Perl5 のシンタックスのサブセットですが、Perl のように正規表現リテラルは存在せず、文字列を用いて正規表
1 Introduction This document serves as the complete definition of Google's coding standards for source code in the Java™ Programming Language. A Java source file is described as being in Google Style if and only if it adheres to the rules herein.Like other programming style guides, the issues covered span not only aesthetic issues of formatting, but other types of conventions or coding standards
AsyncTaskLoaderでのエラー処理 最近Androidで非同期処理を実行する場合、AsyncTaskLoaderを使用するのが一般的です。 HTTP通信等、非同期処理が必要な際によく使用していますが、 AsyncTaskLoader内で発生した例外は、外側のクラスでtry-catchを使用して捕まえることができません。 そのため、エラーハンドリング方法に悩んだ末にここで解決したので、その方法を紹介します。 AsyncTaskLoader まずはシンプルなAsyncTaskLoaderを見てみましょう。 次の例は結果をStringで返すだけのシンプルなものです。 public class AsyncService extends AsyncTaskLoader<String> { @Override public String loadInBackground() { //ここでバ
Javaでリストを使いたい時って よくこーゆー書き方しますよね?φ(--) List hogeList = new ArrayList(); なんで ArrayList hogeList = new ArrayList(); って書かないのか? 実はこれ、簡単だけど奥が深いみたいです。 ・・・の前に、ListとArrayListの違いは ListはインターフェイスでArrayListは実装クラス ってことです。 だからどーした?って話ですよね。 確かにその通りなんだけどそんなのが分かっても役には立たない。 もちっと細かく見てみましょう(--)b 「ArrayList」の宣言はこんな感じになっていますφ(--) public class ArrayList<E> extends AbstractList<E> implements List<E>, RandomAccess, Cloneab
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く