タグ

ブックマーク / qiita.com (336)

  • Androidバージョンの違いをCustomViewで吸収する - Qiita

    新し目のバージョンのAndroidにしか無いViewを使いたいが、xmlをバージョンで分けたりしたくない そこで、そういったViewをラップするCustomViewを作る 今回、ICS以上でTextureView、それ以下でSurfaceViewを使ったカメラを実装した リポジトリ https://github.com/petitviolet/MultiCamera 記事中のコードはこのリポジトリの一部抜粋となっています ライブラリとして使用 Githubにaarをアップロードしたので、以下のように記述するとライブラリとして使用できます repositories { maven { url "https://raw.githubusercontent.com/petitviolet/MultiCamera/master/repository/" } } dependencies { com

    Androidバージョンの違いをCustomViewで吸収する - Qiita
    petitviolet
    petitviolet 2015/06/02
    書いた
  • コマンドラインで動かすファイルマネージャrangerの設定 - Qiita

    LinuxもしくはMacで使うことの出来る、CLIファイルマネージャであるrangerの紹介と、使いやすくする設定を紹介します。 追記(2015/06/13 21:01) 基的な設定方法をまとめたので、こちらもご覧ください。 CLIファイルマネージャrangerの基設定 - Qiita 追記ここまで まず、rangerそのものについてですが、vimライクなキーアサインでも動かすことができ、設定ファイルも読みやすく、挙動も安定しているので、CLIで動くファイルマネージャを探しているのなら、迷わずこれでいいと思います。なにより軽いので、GUIでファイルマネージャを使うよりは軽快で、一度このスピードになれてしまうと、もう戻れない感覚だと思います。 詳細な説明については、rangerのWikiを見てもらうか、英語ですが以下の動画を見てもらえば分かるのではないかと思います。以下では、個人的に便利

    コマンドラインで動かすファイルマネージャrangerの設定 - Qiita
    petitviolet
    petitviolet 2015/05/30
    知らなかった
  • AndroidでModelViewPresenter - Qiita

    Model - View - Presenter と Android Viewは, データの出力を行い, ユーザ操作を受け付けPresenterにこれを伝搬するUI層. AndroidではActivity, Fragment, Viewに相当する. Modelは, SQLite3やWebAPI, SharedPreferenceなどのレポジトリ. Presenterは, ModelとViewのブリッジ役を担う. Modelの内容を整形しViewにそれを伝搬する. またViewへの入力を適切なModelに伝搬する. Androidアプリケーションのプログラミングで厄介な問題の1つにActivity/Fragment/Viewといった固有のライフサイクルをもつオブジェクトでバックグラウンドタスクを管理することが挙げられる. Model-View-ControllerアーキテクチャやModel-

    AndroidでModelViewPresenter - Qiita
  • Gradleのtaskをpecoで選択する - Qiita

    Gradleを使ってAndroid開発しているとき、Gradleのtaskを選択することが多く、以前書いた内容でTAB補完は出来るようになった Android - GradleをZshで補完する - Qiita 今回は、taskをTAB補完ではなくpecoで選択出来るようにした 手順 カレントディレクトリに合ったgradleコマンドを探す gradle tasks --allを実行して文字列として取得 得られた文字列をTAB補完の場合はSpace区切りにする pecoで絞り込む場合は\n区切りに変換する zshのフラグを用いてソートする #!/usr/bin/env zsh # 使用するgradleコマンド function gradle_command() { local gradle_cmd='gradle' if [[ -x ./gradlew ]]; then gradle_cmd

    Gradleのtaskをpecoで選択する - Qiita
    petitviolet
    petitviolet 2015/05/24
    書いた
  • AndroidのStyleとかThemeとかAttrとかStylableとか。 - Qiita

    Help us understand the problem. What is going on with this article?

    AndroidのStyleとかThemeとかAttrとかStylableとか。 - Qiita
  • オ・ト・ナのカプセル化再入門 - Qiita

    よく、初心者向けの教科書に「とりあえずprivateを指定し、必要な物はpublicにしましょう。」と書いてありますが、これは大きな間違いです。 最初にアクセス修飾子を熟知しておかなければ、Java という言語を扱う上で最良の設計を行なうことは難しいでしょう。 そんな教科書は今すぐ窓から投げ捨てるか、ちり紙代わりに使いましょう。 Package パッケージは Java のクラス郡をまとめるための仕組みです。主に利用する目的として、以下の 2 点ががあります。 名前の衝突を避ける事が出来る。 パッケージによるアクセス制御を行なえる。 これらを利用する事で Facade デザインパターンを忠実に実現することができます。 Java のカプセル化においてこの仕組みは必要不可欠でしょう。 Design patterns 次に、ソフトウェア設計において基的な 2 パターンを紹介します。 Facade

    オ・ト・ナのカプセル化再入門 - Qiita
  • AndroidStudioのInspectionでコードチェックを楽にしてみた。 - Qiita

    前置き チームでAndroid開発していて、コーディング規約作りました。 コードチェックはそれを指標としてやってもらっています。 ただ、最近、コードチェックがコーディング規約を守っているか監視する作業みたいな状態になってしまいました・・・。 コードチェックってクラスの設計だったり、メソッド名のわかりやすさだったり、そういう人間にしか出来ないことをチェックすべきで、メンバー変数がmから始まっていないとか。ifのネストの数が多すぎるとかそういうのは機械的なチェックで行いたくなりました。 そこで、AndroidStudioのInspectionを使って、開発中にセルフコードチェックさせようと考え、Inspectionの調査をし始めました。 AndroidStudioのInspectionでコードチェック楽にしようと思ったのだけど、項目多すぎwすで読み始めて半日以上たってる。まだ半分以上ある・・・

    AndroidStudioのInspectionでコードチェックを楽にしてみた。 - Qiita
    petitviolet
    petitviolet 2015/05/17
    人数増えたらやった方がよさそう
  • 動的に生成されるテーブル定義をSQLAlchemyを使って読み込む方法 - Qiita

    動的に生成されるテーブル定義をSQLAlchemyを使って読み込む方法 タイトルのことをやりたい!と思って調べたのでメモ。 結論から言うと、組み込み関数のtypeを使ってマッピングのオブジェクトを作ってやればOK。 例えばこんな感じで書く。 engine = create_engine(データベースURL, echo=True, encoding='utf-8') base = declarative_base(engine) dic = { '__tablename__': テーブル名, '__table_args__': {'autoload': True}}} obj = type('MyObject', (base,), dic) # -*- coding: utf-8 -*- from sqlalchemy import * from sqlalchemy.orm import

    動的に生成されるテーブル定義をSQLAlchemyを使って読み込む方法 - Qiita
  • AndroidStudioのPostfix Completionで爆速コーディング - Qiita

    AndroidStudioの元になっているIntelliJ IdeaにはPostfix Completionという機能があります。 例えば 変数.parを入力してエンターを押すと (変数)というようにカッコで囲ってくれたりします。 これを利用して爆速でコーディングしましょう! .var testInstance.varで Test test = testInstance; みたいに代入してローカル変数にすることができます。 普通に代入にも使えますが、これは一行が長くなってしまった時に変数に代入して分かりやすくしたりすることができます。 Toast.makeText(context, context.getString(R.string.app_name), Toast.LENGTH_SHORT).show();

    AndroidStudioのPostfix Completionで爆速コーディング - Qiita
  • LeakCanaryでメモリリークを検出する - Qiita

    Squareがメモリリークを検出するライブラリ square/leakcanary を公開したので、さっそく使ってみたらすごく便利だった話です。 A small leak will sink a great ship Piwaiが書いたLeakCanaryの記事がこちらです。 LeakCanary: Detect all memory leaks! 要約すると、 Squareではビットマップキャッシュに顧客の署名を書いていたが、端末の画面のサイズ分のメモリを確保するので、署名をするときにクラッシュすることがあり、それがOOMの大半を占めていた。 Bitmap.Configを変更したり、OOMをキャッチしてGCを走らせたりしたが、問題の解決には至らなかった。 我々は間違ったアプローチを取っていたことに気が付いた。ビットマップの大きさではなくメモリリークが根的な原因だったのだ。 通常であれば

    LeakCanaryでメモリリークを検出する - Qiita
    petitviolet
    petitviolet 2015/05/09
    早速使ってみよう
  • (あどてく!) PlayFramework/Scalaで3rd Party Cookieを出力するピクセルトラッキングサーバーを作る - Qiita

    1st Party Cookieで代表的なのはGoogleAnalytics(GA)です。 参考:http://nexal.jp/blogs/2061.html 3rdPartyにはSafariをトラッキングできないという致命的な欠陥(※)がありそれを回避するには1stParyCookieが有効です。(他にもローカルストレージをモニョモニョする・・などもありますが) (※)Safariのデフォルトの設定が「3rd Party Cookieを拒否する」となっているため事実上3rdのCookieを受け付けない。 ピクセルトラッキングとは 1x1の透明画像(だいたいはgif)をレスポンスとして返す裏でCookieを仕込み、Cookieにユーザーを特定するIDを付与する技術の事。 透明なのでブラウザからは見えない、というかほとんどはhtmlでhidden設定されてるのでブラウザには表示されない。

    (あどてく!) PlayFramework/Scalaで3rd Party Cookieを出力するピクセルトラッキングサーバーを作る - Qiita
  • おれおれコールバック設計 - Qiita

    Controller層とModel層の間のCallbackは、ライフサイクルやスレッドの境界になっていて設計に悩む事が多いですよね? それらに対する自分の言いたい事は、弊社KeithYokomaが大体 コールバックと上手に付き合う で書いているのですが、それ以外で自分が使用しているパターンを紹介します("中級編1:複数のコールバックに対応する"に似ています)。 ライフサイクル・オブジェクトパターン そんな名前のパターンは無いです(多分)自分が勝手に命名しました。 このパターンのポイントは、Model層のラフサイクルより、小さい又は同等のスコープを持つオブジェクトを、コールバックのライフサイクルを表すライフサイクル・オブジェクトとして、コールバックを管理する事です。 百聞は一見にしかず。コントローラ層とモデル層の例を見てください。 コントローラ層 public class ExampleAc

    おれおれコールバック設計 - Qiita
  • treeからpecoで選択したファイルをvimで開く - Qiita

    function peco-tree-vim(){ local SELECTED_FILE=$(tree --charset=o -f | peco | tr -d '\||`|-' | xargs echo) BUFFER="vim $SELECTED_FILE" zle accept-line } bindkey "^t" peco_tree_vim -fオプションでフルパスを表示しつつ--charsetオプションで罫線に使用する文字を変更して扱いやすくし、pecoで選択した行にある罫線をtrで除去してvimで開く <Ctrl-t>で起動して便利 Register as a new user and use Qiita more conveniently You get articles that match your needsYou can efficiently read bac

    treeからpecoで選択したファイルをvimで開く - Qiita
    petitviolet
    petitviolet 2015/04/28
    書いた
  • Google Play Storeの評価とレビューをgsutilで取得 - Qiita

    注意事項 gsutilで取得できるCSVは大体1日一回更新のため、リアルタイムでレビューを取得したい場合には不向きです。リアルタイムにレビューを取得したい場合は、play.google.comから取得する事をおすすめします。 参考: https://github.com/punchdrunker/kansou 概要 以前からストアのレビューを自動で取得しているのですが、年に数回レビューページのhtmlのDOMが変更されるたび、取得できなくなり、都度修正が必要になり困っていたのですが、 気付いたらこの通り https://support.google.com/googleplay/android-developer/answer/138230#export_ratings_and_reviews 、Google Could Storage経由でAndroidアプリのストアレビューをCSV形式

    Google Play Storeの評価とレビューをgsutilで取得 - Qiita
  • [Android] データの永続化領域について -getFilesDir() vs getExternalFilesDirs()-(アプリ内で取得した画像の置き場所に迷ったので) - Qiita

    [Android] データの永続化領域について -getFilesDir() vs getExternalFilesDirs()-(アプリ内で取得した画像の置き場所に迷ったので)Android アプリ内でダウンロードした画像や動画はどこに置いたらいんだっけ、というのが自分の中で割りと曖昧だったので調べました。 似たような記事はいろいろありますが、自分の言葉でまとめておきたかったので備忘録的に。 Androidではデータの永続化領域としていくつかの場所が用意されている。 大きく分けると、「アプリ内のデータ領域」と「外部ストレージ」があると思います。 アプリ内データ領域 Context.getCacheDir() ex) /data/data/{パッケージ名}/cache これで得られるディレクトリ以下のファイルはあくまでキャッシュ用。容量が足りなくなった時に削除可能性がある。また、Andro

    [Android] データの永続化領域について -getFilesDir() vs getExternalFilesDirs()-(アプリ内で取得した画像の置き場所に迷ったので) - Qiita
  • Android Studio(Gradle)でapkファイルを作成する時にstorePassword/keyAlias/keyPasswordの指定方法をいくつか検証してみた。 - Qiita

    Android Studio(Gradle)でapkファイルを作成する時にstorePassword/keyAlias/keyPasswordの指定方法をいくつか検証してみた。AndroidgradleAndroidStudio 前提条件 今回対象とした環境 Android Studio v0.8.2 Gradle 1.12 (Android Studioに内包されているもの) OS X Mavericks 10.9.4 利用しているプロジェクトAndroid Studioが生成したHello worldプロジェクト ファイルの有無確認などのエラーハンドリングは全て省略 Gradleを実行する時のコマンドは全てgradlewがある階層で以下をタイプしています

    Android Studio(Gradle)でapkファイルを作成する時にstorePassword/keyAlias/keyPasswordの指定方法をいくつか検証してみた。 - Qiita
  • 炎上案件に突如ディレクターとして投入されたときにやってみたこと - Qiita

    ぼんやり1メンバーとして眺めていたプロジェクトが、リリース1週間前になって「あれも足りない!これも出来てない!どうすんじゃゴラァ」となったときに突如ディレクターとしてぶっこまれ投入されたときにやってみたことのメモ。 一次対応 とにもかくにもPJTに投入されて最初にやったこと。 コミュニケーションルールをみんなで確認して、守ってもらうようにした 誰が何の情報を持ってて、そして誰から誰にどんな指示が出てて、それらがどんなステータスか、、、 もうぐっちゃぐちゃになっていた。 ディレクターは一度死ぬが、一旦全部ディレクターに報告させて、ディレクターから適切な人に指示を出すことにし、メンバー同士でのダイレクトなコミュニケーションをいったん、原則禁止した。 (ディレクターがAさんとBさんで直接やって、と指示を出すときもあるが、それもやりとりの結果をAさんから必ずフィードバックさせるようにした。) ただ

    炎上案件に突如ディレクターとして投入されたときにやってみたこと - Qiita
  • Androidのパッケージ構成について考えてみた - Qiita

    更新しました (2017/4/12) この記事を書いたときから大分時間が経ったので、最新版をこちらに書き直しました。 基的な階層構造 AndroidでMVCを適用しようとすると、Activity/FragmentがViewとController両方の責務を担っていて綺麗にVとCを分離できず、もやっとしてしました。そこで、色々な資料やサンプルを見たところ、 http://www.slideshare.net/mokemokechicken/iosandroidmodel にある階層構造が一番しっくり来たのでこれをベースにパッケージ構造を考えることにします。 ユーザー操作に近い順に、以下の3階層に分類されます。 プレゼンター層 UIの制御やユーザーの入力に対する制御を扱う層。MVCでいうとVCにあたる。 ビジネス層 ビジネスロジックを扱う層。MVCでいうとMのうち抽象度の高い部分。 データ層

    Androidのパッケージ構成について考えてみた - Qiita
  • Webパフォーマンス管理の基本 1 - Qiita

    はじめに Webパフォーマンスはパフォーマンスエンジニアリングの1つの分野 Webパフォーマンス管理は、Webサイトの非機能要求の性能や可用性を扱います。 専門用語では、コンピュータの登場と時期を同じくして登場したパフォーマンスエンジニアリングという分野に属します。 パフォーマンスエンジニアリング パフォーマンスエンジニアリングとは、Wikipediaでは以下のように記載されています。 Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance (such as throughput, latency, or memory usage) w

    Webパフォーマンス管理の基本 1 - Qiita
  • JavaScriptを読んでて「なにこれ!?」と思うけれど調べられない記法8選。 - Qiita

    JavaScriptを読んでいると、「あれ、、、なにこれ?この書き方。。。」と思うことがたまにあります。この際の厄介なことは、どうやって調べたらいいかわからないことです。Google先生に聞こうにも、その書き方をなんと呼ぶかわからないので聞けない。 そんな「なにこれ?」を厳選してみました。覚えておくと、将来スッキリとする時が来るでしょう。 1. なみなみ、ふにゃふにゃ言ってる

    JavaScriptを読んでて「なにこれ!?」と思うけれど調べられない記法8選。 - Qiita