タグ

関連タグで絞り込む (0)

  • 関連タグはありません

タグの絞り込みを解除

javaとJavaとAndroidに関するclavierのブックマーク (137)

  • Android らしい Java - 3. 薄い抽象

    Android プラットホームの API はひどい。 プラットホームというもの一般の API デザインが時代にあわせ少しずつ良くなる中、Android は時代を10年くらい巻き戻した感がある。深い継承。でかいクラス。ヒラより多いマネージャたち。コンサーンもレスポンシビリティもテスタビリティも何もない。 モバイルデバイスには従来の Java が気にかけなかった様々な制約がある。同じように行かない。それはわかる。でもねえ。 過去にもひどい API のプラットホームはあり、人々は大きく二つの方法で立ち向かった: 一つ目は、プラットホームを無視して自分で再発明する方法。Qt や XUL, Swing みたいなクロス OS のツールキットはだいたいこの路線。二つ目は抽象化レイヤをかぶせて隠す方法。Windows API に対する MFC, WTL や SWT. あるいは DOM に対する jQuer

    Android らしい Java - 3. 薄い抽象
  • Android らしい Java - 2. 寿命

    寿命、ライフサイクルのはなし。(Part.1 はここ) Android の中には、決められた寿命を持つ重要なオブジェクトがいくつもある。代表例は Activity. View も Fragment もプラットホームによって寿命が決められている。 Java は誰かに決められた寿命を扱うのがあまり得意でない。多くのオブジェクトは Java 自身の GC が寿命を決める。GC があるからプログラマは寿命について悩まなくていい。そんな態度が従来の Java にはある。C++ のように神経質な寿命管理は出番が少ない。 Java でも File のような OS の資源は GC でなくプログラマが寿命を決める。Socket なんかはもう一段厄介で、相手側から閉じられると勝手に死んでしまう。そして死んだオブジェクトを触るコードは呪いの例外に見舞われる。 勝手に死ぬ Activity や View の性質は

    Android らしい Java - 2. 寿命
  • 次世代ビルドツールBazelを使ってAndroidアプリをビルドする - クックパッド開発者ブログ

    会員事業部所属エンジニアの山下(@tomorrowkey)です。 去年はモバイルファースト室でバリバリとAndroidアプリを書いていたのですが、今年に入ってサーバーサイドもやってみたいと思い、最近はRubyを書いている日々です。 Rubyはあまりやったことがなかったのですが、REPLがあってとても助かります。Java 9でREPLが使えるようになるらしいですが、Androidは縁遠い話ですね。 さて、今回は来年ビルドツールとして脚光を浴びそうなBazelをご紹介したいと思います。 Bazelとは何か Bazel http://bazel.io/ BazelはGoogleが社内で使用していたビルドツールをオープンソース版として開発をしているものです。2015年3月にAlpha版が公開されました。 Alpha版ではクライアントアプリケーションやiOSアプリのビルドなどがサポートされていて、最

    次世代ビルドツールBazelを使ってAndroidアプリをビルドする - クックパッド開発者ブログ
  • Java と Android の正規表現の動作の違い - Qiita

    この記事は、先日の potatotips #22 では説明しきれなかった部分を補足するものです。potatotips #22 でのスライドは Regular Expression in Android And Java です。 おさらい Pattern | Android Developers Java の正規表現 Patternクラスを用いて、正規表現文字列をコンパイルしてマッチする処理を描くことになります。Stringクラスには一部便利なメソッドがあり、正規表現文字列を渡してマッチするものに処理を施す事ができるようになっていますが、あまり複雑なことはできないため、Stringクラスで提供されている以上のことをする場合はPatternクラスを用います。 Java の正規表現は Perl5 のシンタックスのサブセットですが、Perl のように正規表現リテラルは存在せず、文字列を用いて正規表

    Java と Android の正規表現の動作の違い - Qiita
    clavier
    clavier 2015/10/16
    あなたとジャバ - Java と Android の正規表現の動作の違い - Qiita
  • Android らしい Java - 1. 非同期性

    仕事Android アプリのコードを触り始めはや数ヶ月。少しは理解が進んだ。 今の仕事のコードは、残念ながらそれほど素晴らしくない。その昔 Android Java にまだ慣れていなかった人々が書いたであろう古いコードが目につく。そして古いコードの昔ながらな残念さは、従来の Java とは違う Android Java の「らしさ」を描き出す。そんな話を数回にわけて書いてみたい。 第一回は非同期性のはなし。 Android のアプリはメインスレッドをブロックしてはいけない。だから色々と非同期に書く。ところが従来の Java は非同期がさほど得意でない。多くの API がブロックする。 ブロックする処理は別のスレッドに追い出せばいい。ただし結果はイベントループを通じてメインスレッドに戻さないといけない。これを綺麗に書くイディオムが、Android では最近まで確立されていなかった(Asy

    Android らしい Java - 1. 非同期性
  • Kotlinのいいところ/Null-Safety | Lab

    今年はKotlinがくる…と社内で言い続けて、もう10ヶ月。私達のような受託開発をメインにしている会社では、なかなか実案件に投入するのが難しいところかと思います。 (なにしろ、Ver.1.0にもなってないものを使うのかというところでひっかかる人達もいらっしゃるので…) そんな中、今回を含めて数回でAndroidアプリの開発現場でKotlinを利用すること得られるメリットを紹介したいと思います。 Kotlinの使い方や「Hello, world.」などは http://kotlinlang.org/docs/tutorials/ を読んでいただければと思います。 今回はその中のNull-Safetyについて紹介します。 Null-Safetyとは NullPointerException…甘美な響きですね(笑)。 正直な話、「ぬるぽ」はテストフェーズで発生する不具合の原因となる例外の一つです

  • Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita

    関連記事 この記事も古くなりましたね。執筆時の実装バージョンKotlin 0.12から1.0.2へのアップグレード対応をした際の知見を記事にしました。 Kotlinを実案件で使いました 先日、僕の勤め先のQonceptは『リアル鬼ごっこ』×富士急ハイランド 巨大遊園地からの逃走を開発、リリースしました。 富士急ハイランドで実際に鬼ごっこをする企画で、一般のお客さんがスマホで専用アプリを使いながらクリアを目指します。園内には鬼役のスタッフや、ゲーム進行に関わる設備などがあり、これらとスマホがiBeacon(BluetoothLE)を用いて連動することで、ダメージを受けたり、アイテムを使用したり、クイズを解いたりなどします。 Qonceptの開発範囲は、iOSアプリ(とAppleWatchアプリ)、Androidアプリ、サーバサイドでした。 受注確定となった時点で、残り日数と開発者リソースに対

    Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita
  • 第20回 #potatotips でJavaのenumについて語ってきた - Augmented Usamimi

    表題のとおりです. potatotips #20でLTした 前回(第19回,発表資料)は当日繰り上がり当選,その前(第17回,発表資料)は主催者枠での登壇だったので,正規当選での発表は実は初めてだった. speakerdeck.com Effective Java 第2版 (The Java Series)とKeithYokoma氏のQiita記事に自分が最近書いたコードからの知見を加えたもだが, スライドのデザインに気を取られすぎて内容がアレになってしまった. あと,最近のAndroid界隈の流行に乗ってスライドを英語で作ったらとてもつらいことになった. トークから漏れたenumの話 スライド後半でenumで実装するイベントハンドラを紹介している. これはスライドに書いたとおりだけど,大きなメリットとしてはやはりテスタビリティの向上と責務の分散があると思っている. テスタビリティについて

    第20回 #potatotips でJavaのenumについて語ってきた - Augmented Usamimi
  • イベントバスとリアクティブプログラミングの違いについて - torutkのブログ

    GUIを持つアプリケーションの設計では、ソフトウェアアーキテクチャパターン*1としてMVCパターンを使用し、MVCパターンを実現する上で、Modelの変更をViewやControllerへ通知する仕組みにデザインパターン*2としてObserverパターンを使用するのが古典的定番です。 ところが、Observerパターンを使ったModelには、Observableのリストを管理し、状態変更の際にリストに登録されるObserbable全てに通知する仕組みを実装する必要があり、結構な作業となります*3。 このModelからの通知をObserverパターンで実現する代わりに、イベントバスを使って実現すると、Modelの実装を簡潔にすることができます。Java SEではあまり事例を見かけませんが、Androidでは割とメジャーに使われているようです。 先日、Androidでイベントバスのライブラリを

    イベントバスとリアクティブプログラミングの違いについて - torutkのブログ
  • Rxjavaとoptionalで関数型androidしよう

    2014/02/08(土) Scala関西ビギナーズ 第3回にて発表。 Scala関西ビギナーズWiki https://github.com/SAMMY7th/scala_kb/wiki

    Rxjavaとoptionalで関数型androidしよう
  • Androidの非同期処理の話 - Qiita

    Help us understand the problem. What is going on with this article? 非同期処理でよく使う IntentService と AsyncTask は何が違って何が同じなのかという記事を読んだので。 HandlerThreadについて HandlerThreadは、内部に持っているHandlerにメッセージが渡ってきた時、それを順に処理するようできているので、メッセージを同時に複数送ると、ジョブキューのようにシリアルな動作で、メッセージを1つずつ捌いていきます。 これはHandlerThreadのコードを読むのが早いのですが(凄く短いので)、このクラスはイベントループに紐付けるための定型処理のある、ただのThreadのサブクラスです。なので、内部に持っているのは、Handler(メッセージ)ではなく、Looper(イベントループ

    Androidの非同期処理の話 - Qiita
  • AsyncTask アンチパターン

    ChatGPTを使い素早くアイディアを形にし、表形式(Excel,GoogleSheet)で整合性を確保しながら要件を組み立て、表形式からグラフ構造に変換し、凝集度・結合度、トレーサビリティを確認しながら、要件の精度を上げる The Second Payment Services Directive (PSD2) and the associated Regulatory Technical Standards (RTS) on strong customer authentication and secure communication impose stringent requirements on multi-factor authentication and on the security of implementations. Payment Service Providers

    AsyncTask アンチパターン
  • AndroidのThreadPoolExecutorに関する覚書 - Islands in the byte stream

    ThreadPoolExecutor を調べていて、 Thread インスタンスの最大数はどんなものだろうと思ったので確認したところ、端末によって異なりますが1000個〜10000個程度でした。これを超えるとOutOfMemoryErrorが発生したり、最悪の場合いきなりクラッシュしたりします。 Executors.newCachedThreadPool() は ThreadPoolExecutor を生成するファクトリメソッドですが、スレッド生成の最大数が Integer.MAX_VALUE (つまり無制限)となっています。このexecutorによってスレッドを数百以上生成することはまずないとは思いますが、上限が定められていない以上うっかり端末の限界値を超えないとも限りません。Androidで Executors.newCachedThreadPool() を使うのはやめたほうがよさそう

    AndroidのThreadPoolExecutorに関する覚書 - Islands in the byte stream
  • RxJavaに3日で入門し、Androidアプリのリスト操作、非同期処理、変更通知の課題を解決した話 - Qiita

    なんでこの記事書いたのか 今開発中のプロダクトにおいて、RxJavaの導入をやってみたので、実際に使った箇所とその例、調べないとわからなかったことを載せておきました。 そう(retrolambdaのためにjdk8を投入)までして導入したかったメリットを話してくれ、サンプルコードがないとわからん、といった声を頂いているので、実際に何が解決されたのか、どんなコードで解決したのかということと、そのために勉強しなくてはならなかった点について書いています。 (追記)警告:差分作ってコード上では解決したんですが、この差分まだ「リリース」したわけじゃないので、その点だけご注意くださいmm 続報あり次第追記します。 追記:リリースして安定運用しています!最近まで監視に難がありましたがそれも修正しました。この記事の監視スニペットも更新済みです! なぜRxJavaを導入したのか 次の課題をまとめて解決できるの

    RxJavaに3日で入門し、Androidアプリのリスト操作、非同期処理、変更通知の課題を解決した話 - Qiita
    clavier
    clavier 2015/06/29
    RxJavaに3日で入門し、Androidアプリのリスト操作、非同期処理、変更通知の課題を解決した話 - Qiita
  • RealmとJSONライブラリ

    若手中心の内製アジャイル開発で研究開発に挑戦 / 20250517 Nobuhiro Kawamura & Dami Lee & Tomohiko Tanikawa

    RealmとJSONライブラリ
  • Android版クックパッドアプリで採用している技術の現状確認 2015年版 - クックパッド開発者ブログ

    目次 はじめに 技術選択の基的な方針 技術選択の各論 HTTP Client Dependency Injection View Injection Asynchronous Control Flow Object Relation Mapper Logging Fragment はじめに 技術部の id:gfx です。 Androidクックパッドアプリのリニューアル*1 から約1年たちました。現在はリリースごとに5人程度がコミットし、2週間に1度リリースを行う開発体制となっています。プログラミング言語はJavaで、コメントも含めたアプリのソースコードの行数は約15万行です。 エントリでは、Androidクックパッドアプリで使っている技術、具体的にはライブラリやフレームワークについて紹介します。また、そのための技術選択のアプローチについても概説します。 技術選択の基的な方針 まず

    Android版クックパッドアプリで採用している技術の現状確認 2015年版 - クックパッド開発者ブログ
  • サービス提供終了のお知らせ

    日頃より、アレスネットをご愛顧いただきまして誠にありがとうございます。 「ホームページサービス」のサービス提供は2016年1月31日をもちまして終了させていただきました。 これまで長らくご利用いただき、誠にありがとうございました。 今後も、皆様によりよいサービスをご提供させていただけるよう、サービス品質向上に努めて参りますので、何卒、ご理解いただけますようお願 い申し上げます。 <アレスネットをご契約のお客様へ> 後継サービスとして「userwebサービス」を提供させていただいております。 詳しくは、以下のリンクをご参照ください。 ▼「userwebサービス」のご案内 http://www.ejworks.info/userhp/alles/index.html 今後ともアレスネットをご愛顧いただけますようお願い申し上げます。 株式会社イージェーワークス アレスネット カスタマーサポート

  • Writing Android Libraries

    About the content This content has been published here with the express permission of the author. At some point as a developer you’ll consider writing a library, whether to perform a specific task, modularize your code-base, or perhaps just to reuse your code in an elegant way. But writing a library is tough work. Hosted by the Bay Android Dev Group, in this talk our own Emanuele Zattin shares som

    Writing Android Libraries
    clavier
    clavier 2015/06/02
    Android ライブラリの書き方 with Java, Annotation Processors or Native Code (Video) - Realm is a mobile database: a replacement for SQLite & Core Data
  • チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita

    この投稿は DroidKaigi で話そうと思ったけど採択されなかった RejectedKaigi な内容です。 プログラムは、書けば書くほど複雑になります。行数が増え、分岐や繰り返しが増え、メソッドが増え、クラスが増え、パッケージが増え、管理するものは日に日に増えていきます。これらのものを使う側からすると、使うものが増えるということは、それだけ覚えることが増えることになります。勿論、IDE やエディタプラグインによって、そのような労力が極力減らされることもありますが、覚えることが少ないに越したことはありません。 この記事では、IDE やエディタプラグインはひとまず脇に置き、チームでコミュニケーションを取りながらコードを書くという観点で、従来のプログラミングのプラクティスを基に、開発時のミスを少なくし、チームで素早くアプリを作り続けていく方法論を深めていこうと思います。 Agenda 型を

    チームとして少ないミスで素早くアプリを継続的・持続的に作り続けるためのメソッド - Qiita
  • 新言語KotlinでAndroidプログラミイング // Speaker Deck

    All slide content and descriptions are owned by their creators.

    新言語KotlinでAndroidプログラミイング // Speaker Deck