サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Switch 2
qiita.com/hkusu
これは ゆめみ Advent Calendar 2018 の2日目の投稿です。 コミュニケーションツールとして Slack、コードを GitHub 上で開発している場合、開発の状況や GitHub 上のアクションに応じていい感じに Slack へ通知を流したい、と思うことがありませんでしょうか。私はあります。 一応、GitHub 公式のインテグレーション もあるのですが、これに物足りない場合は自前で仕組みを構築することになります。今回は試しに、GitHub の Pull request または Issue で、 @ でメンションされたら Slack に通知する という仕組みを構築してみたので、その構築の手順を紹介をしたいと思います。 動作イメージ 全体の構成 独自のコードをどこかに自前でホスティングする必要がありますが、それは AWS Lmabda に置きます。GitHub の Webho
ブログを書きました。Qiitaにも投稿します。 -- 前々から Gist は知ってたのですが(kobitoからQiitaに投稿する際に、Gistにも投稿するかオプションがあるし)、あまりちゃんと触ってなかったので、この機に試してみました。 Gistとは GistはGitHubのサービスの一つで、これを利用するとソースコード1ファイル単位(複数もOK)でGit管理し、公開することができます。 GistのURL:https://gist.github.com 例えばこんな感じです ⇒ https://gist.github.com/hkusu/78e0e3460efe7723f948 何が便利か 大きくは次の特徴があるからかなと。 本来GitHubは、無料枠だと非公開なリポジトリは作れないのですが、Gistの場合は非公開にできる。 ただURLが分かってしまえば誰でもアクセスできてしまいます、が
resources 類の場合 通常は src/main にファイルが置かれていると思いますが、debug ビルド用のファイルは src/debug ディレクトリを作成して配置します。 main と debug で同じ定義(上図でいうとapp_name)がある場合、debug ビルド時は main のソース < debug のソース の優先度で適用してくれます(定義が上書きされる)。debug のファイルでは、main の全ての定義を上書きする必要はありません(debug で上書きしたい定義とういうか、その行だけ書けばいい)。 layout や drawable の場合はファイル単位で debug ビルド用のものを用意します。 debug でなく release ビルド時のソースを分ける場合も同様な考えで。 Java のソースの場合 Java のソースの場合は、main のソースは debu
あるViewに対してアニメーション①を実行し、終了したらアニメーション②を実行し、、ということを実現したいとします。ただリスナーでアニメーションの終了を検知しているとコードがネストしたり、繰り返したい場合にどうすればいいか困ったりします。 そういう場合は、enum でステートマシンを作ってアニメーションを実行するとコードがすっきりします。 例えば下記のコードは、あるViewに対してアニメーション AnimState1 AnimState2 AnimState3 の順次実行を繰り返し行うコードの例です。 enum SomeAnimState { Stop { @Override protected void start(View view) { changeState(view, AnimState1); } }, AnimState1 { @Override protected void
Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article?
Homebrew で pyenv を導入し、作業環境の Python のバージョンを管理できるようにした際の作業メモです。 前提環境 OS X El Capitan (10.11.5) Homebrew が導入済みであること 導入済みでなければ 公式 を参考にインストールしてください 手順 ① pyenv のインストール $ brew install pyenv ② 有効化 $ eval "$(pyenv init -)" もし次回以降、自動でやりたい場合は ~/.bash_profie 等に次のように記載してください。
Flux とは Facebook が提唱したアーキテクチャの名称で、最近のフロントエンド(JavaScript)界隈でアプリケーションの状態の複雑さに対応する為のアプローチの一つです。 https://facebook.github.io/flux/docs/overview.html 旧来の MVC2 もしくは Observer パターンに Action Dispatcher Sotre というコンポーネント名を定義し Flux という名称をつけたもの、と考えてもよいかと思います。 なぜフロントエンド(JavaScript)界隈で今このアーキテクチャが取り上げられているかと言うと React の仮想DOMの登場がきっかけになっています。アプリケーション開発でおおざっぱに状態(Flux でいうと Store)から View 全体を再描画するコードを書いても、仮想DOM側で差分でレンダリング
先日の LINE DEVELOPER DAY 2016 で LINE Notify が発表されました。これを利用して独自のボットが作れそうなので、今回は AWS Lambda で簡単なボットの作成を試してみました。 Lambda を利用することで、自分にサーバを持たずにボットを運用することができます(いわゆるサーバレス)。 トークンの取得 https://notify-bot.line.me/ja/ にログインし マイページ にアクセスします。 ログインの為の ID とパスワードは LINE アプリで登録・確認できると思います。 トークンを発行する ボタンを押下します。 ボット名を適当に入力し 1:1で〜 を選択します。 自分はほぼ LINE を利用してないのでよく分かりませんが、画面を見る限りトークルーム?なるものも選択できるのでしょうか。 トークンが発行されるのでメモっておきます。 マ
状態を持つインスタンスを、異なるファイルやクラスで使いまわすケースです。例としてキーと値を保持するコンテナ的なものをシングルトンで運用する場合は、次のように new でインスタンス化したものを export するだけです。 class Container { constructor() { this.map = new Map; } set(key, value) { this.map.set(key, value); } get(key) { return this.map.get(key); } } export default new Container();
Android の開発をしていると、値の取りうる値が数パターンの場合は、列挙型(Enum)を使いたくなります。
Symbols を利用します。例えば Person クラスで「名前」「年齢」を private にしたい場合は次のようにします。 const propName = Symbol(); const propAge = Symbol(); /** * Person class */ class Person { /** * @constructor * @param {string} name * @param {number} age */ constructor(name, age) { this[propName] = name; this[propAge] = age; } } export default Person; 変数 propName および propAage は一意であり、他の方法で同値のものを生成できず、アクセスできるのはこのファイル内のみです。 この例では、インスタン
これは スピカ Advent Calendar 2015 の19日目(12/19)の投稿です。私は Android版ネイルブック の開発に携わっているのですが、今回も Android に関する記事を書きたいと思います。 昨日、表題のことをどういう風にしているか聞かれたので、よい機会だと思い今回まとめました。アドベントカレンダーっぽいネタですし。 私は Android の開発経験がめちゃめちゃ長いわけではありませんし、専業でもなく、また世の中にはもっとすごいエンジニアさんが山程いらっしゃると思うので、まあ参考程度に。これから開発を始める方の参考に少しでもなればと思い、ここに書きます。 ちなみに本屋やAmazonで買えるような書籍はすぐに陳腐化してしまいますし、またそういう状況なので Android の書籍はこれから開発を始める方向けの導入というか基礎的なもの以外はあまり発刊されない、という状
※ 環境に合わせて変えてください。 ② Android ButterKnife Zelezny ButterKnife 用のコードコードをレイアウトファイルから自動生成してくれます。 バインド対象の View が多いと手で記載するのは大変だし間違いの元なので、私はいつもこれで自動生成しています。 ③ Android Material Design Icon Generator Google の Material icon を簡単にプロジェクトへ導入できるようになるプラグインです。また Google のサイトに用意されているアイコンは黒・白の2種類だけなのですが、このプラグインを利用すると色も自由に変えられます。 ④ Android Drawale Viewer drawable リソースの中身が確認できます。 ⑤ Fabric for Android Studio Fabric 用のプラグ
画像変換は EC2 に導入した ngx_small_light で行い、画像の実体は Nginx のプロキシ機能を使って WEB ホスティングした S3 から取得する構成です(EC2 はリバースプロキシ&画像変換サーバとして動作する)。既に画像を S3 の WEB ホスティングで配信しているサービスであれば、リバースプロキシ&画像変換サーバを S3 の前段に置くことで画像変換機能を付与することが出来ます。 簡単に試してみたので、本投稿はその手順のメモです。 ngx_small_light の概要はこちらのスライドが分かりやすかったです。 ⇒ 実践ngx_small_light入門 by Tatsuhiko Kubo【Speaker Deck】 環境構築の手順 EC2 の用意 今回は クイックスタート の一番上にある、このマシンイメージ(AMI)を利用しました。OS は Amazon Lin
Android 初心者です。新しい言語を学ぶとき、まずは RSSリーダ的なものか、外部APIでデータを取得する何かを作りながら学びたい派なのですが、何故か Android の入門的な書籍には方法が書いてないので、調べながらやってみました。 参考にさせて頂いた記事 Androidの汎用的な非同期通信クラスできたよー! AsyncTaskにリスナーを追加してActivityで処理する Android AsyncTask with JSON Parsing JSONをパース(解析)する 今回の環境 Android Stuido:1.0.1 JDK:1.7.0_71 compileSdkVersion:21 minSdkVersion:15 targetSdkVersion:21 通信用クラスの作成 AsyncTask を継承してクラスを作成し、コールバック用のインタフェースを実装します。実際に通
自分的にはどの JavaScript ライブラリを試すにしても、この環境の上に目的のライブラリを載せるnのが一番効率が良いかなと思い、テンプレート化してみた。 テスト系が含まれていないが、学習目的ならこれで十分かと。 下記は補足です。 Node.jsモジュールの構成(package.json) 主要なのは browserify と、Babel 用のトランスパイラである babelify です。最悪この2つだけあれば、本 package.json の scripts の build に書いてあるようなコマンドを叩く(もしくはこの環境の場合は $ npm run build で実行できる)ことで ES6 から ES5 への変換および Browserify による Node.js ライブラリ(= npm コマンドでインストールした node_modules 配下のライブラリ)を含んだ形で、Jav
〜 "devDependencies": { "react": "^0.13.3", "browserify": "^10.2.1", "babelify": "^6.1.1", "gulp": "^3.8.11", "vinyl-source-stream": "^1.1.0", "gulp-webserver": "^0.9.1" }, "scripts": { "build": "browserify --debug --transform babelify app.jsx --outfile bundle.js" }, 〜 後方互換を期待して各ライブラリのバージョンは固定していないので、もし手元で上手く動かない場合はバージョン番号の前の^を外してバージョンを固定して導入してみてください。 React.js は HTML ファイルの script タグで読み込むのではなく、Brows
'use strict'; angular.module('apiTestApp') .factory('JsonData', ['$http', function ($http) { return { getSampleData: function () { return $http.get('data/sample.json', {cache: true}) .success(function(data, status, headers, config) { return data; }); } } }]) ; きちんとキャッシュされているか否かは、Chrome の Developer Tools で確認できます。 2回目以降はAPIコールがされなければOK(後述しますがキャッシュ先はヒープメモリなので、ブラウザをリロードするとキャッシュは消えてしまうので注意)。 もしキャッシュの挙動
今回は単純に、WebView 内の JavaScript から Android のトーストを表示してみます。 まず、Android 側で、JavaSript ⇔ Android(Activity) 間のブリッジとなるクラスを新規に作成し、 hogeMethod メソッドが呼ばれたら、トーストを表示するようにします。 クラス名は安直に JavaScript としましたが、何でもいいです。 package com.example.hkusu.javascripttest; import android.content.Context; import android.widget.Toast; public class JavaScript { private Context c; public JavaScript(Context c) { this.c = c; } public void
これは AngularJS Advent Calendar 2014 の24日目(12/24)の投稿です。クリスマス・イブですね。 ionic は 公式ページ で紹介されているとおり、モバイル向けの AngularJS ベースの CSS/JavaScript ライブラリです。(要は Bootstrap 的なものと思ってもらえれば。) Cordova と連携して、ネィティブアプリにパッケージできます。WebStorm をお使いの方は、バージョン9の更新情報で、ionic がサポートされた、というのをご存知かと思います。 この ionic ですが、アプリにパッケージしなくても、この CSS/JavaScript ライブラリを モバイル向けWEBサイト の用途として利用するのもいいんじゃないか、と思っています。もしくはネィティブアプリの一部機能を、ionic で作って、アプリの WebView
次のページ
このページを最初にブックマークしてみませんか?
『@hkusuのマイページ - Qiita』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く