サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
Pixel 9
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
静的な内容ならS3に置いてWEBホスティングを有効にすればいいのですが、動的にHTMLを生成する場合にLambdaでHTMLを生成してレスポンスする方法です。この方法だとEC2等のサーバを運用する必要がありません。 exports.handler = (event, context, callback) => { // もしQueryStringから値を取り出したい場合はevent.queryStringParametersから取得する // 動的にHTMLの内容を作成 const html = ` <html> <meta http-equiv="Content-Type" content="text/html" charset="utf-8"> <body> <h1>Test Page</h1> こんにちわ! </body> </html>`; // Lambdaプロキシ統合の場合は下
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 は一意であり、他の方法で同値のものを生成できず、アクセスできるのはこのファイル内のみです。 この例では、インスタン
プログラムには関係ありませんが、なんか半年に一回ぐらいのペースで探している気がするのでメモ。 用途 ┏━┳━┳━┳━┓ ┃表┃を┃書┃い┃ ┣━╋━╋━╋━┫ ┃た┃り┃ ┃ ┃ ┗━┻━┻━┻━┛ ツリーを書いたり ┃ ┃ ┃ ┣ あああ ┃ ┣ いいい ┃ ┗ ううう ┗ えええ コピペ用の記号 細い方
学習がてらやってみたのでメモ。 作業環境 OS:Mac OS X 10.9.5 Docker:1.6.2 前提として、Mac への Docker のセットアップは完了しているものとします。 また Docker のイメージはこれ(たぶん公式)を使います。 ⇒ https://registry.hub.docker.com/_/node/ 手順 Docker イメージの動作確認 まずは Node.js 用の Docker イメージ(公式)がきちんと動くか確認してみます。イメージ名は node のようです。
[2015/05/22追記] WebStorm でなく gulp のタスクで Babel を動かす方法はこちらに書きました。 ⇒ ES6 で書く環境を作る(gulp + Babel 編) この辺りの環境は、移り変わりが激しいので、現時点(2015/5/22)の参考ということで。書いた ES6 のスクリプトをどの環境でも動かせるよう、Babel で ES5 へ変換することとします。 前提環境 OS:Mac OS X 10.9.5 Bable:5.4.7 WebStorm:10.0.2 npm:2.7.5 手順 といっても、WebStorm のバージョン 10 系なら簡単だった。 ただ WebStorm を使うといえど、トランスパイラ(今回は Babel)は別途、必要なので、次のように npm で手元の環境へ導入しておきます。
これは スピカ Advent Calendar 2015 の19日目(12/19)の投稿です。私は Android版ネイルブック の開発に携わっているのですが、今回も Android に関する記事を書きたいと思います。 昨日、表題のことをどういう風にしているか聞かれたので、よい機会だと思い今回まとめました。アドベントカレンダーっぽいネタですし。 私は Android の開発経験がめちゃめちゃ長いわけではありませんし、専業でもなく、また世の中にはもっとすごいエンジニアさんが山程いらっしゃると思うので、まあ参考程度に。これから開発を始める方の参考に少しでもなればと思い、ここに書きます。 ちなみに本屋やAmazonで買えるような書籍はすぐに陳腐化してしまいますし、またそういう状況なので Android の書籍はこれから開発を始める方向けの導入というか基礎的なもの以外はあまり発刊されない、という状
これは スピカ Advent Calendar 2015 の1日目(12/1)の投稿です。私は主に Android に関わることについて何日か投稿しようと思っていますが、1日目は私が利用している Android Studio のプラグインについて紹介しようと思います(といっても、そんなに多くは使ってないですが)。 ① ADB Idea adb のコマンドの幾つかを Android Studio から実行できるようになります。私がよくやる使い方は [Shift]キー2回押しで検索窓を開き、「adb」と入力して本プラグインのメニューを開いてそこから選択しています。 データのクリアなどは地味に面倒なので重宝しています。 もし adb 自体にパスが通ってなければ .bash_profile (OS X の場合)に次のように追加してパスを通します。 export PATH="/Users/h_kus
Nginx、ngx_small_light を Amazon EC2 へ導入し S3 の画像をリアルタイムに変換するnginxAWS 画像変換は EC2 に導入した ngx_small_light で行い、画像の実体は Nginx のプロキシ機能を使って WEB ホスティングした S3 から取得する構成です(EC2 はリバースプロキシ&画像変換サーバとして動作する)。既に画像を S3 の WEB ホスティングで配信しているサービスであれば、リバースプロキシ&画像変換サーバを S3 の前段に置くことで画像変換機能を付与することが出来ます。 簡単に試してみたので、本投稿はその手順のメモです。 ngx_small_light の概要はこちらのスライドが分かりやすかったです。 ⇒ 実践ngx_small_light入門 by Tatsuhiko Kubo【Speaker Deck】 環境構築の手順
前回の投稿(ES6 で書く環境を作る(WebStorm + Babel 編))では Babel を WebStorm から実行しましたが、今回は WebStorm でなく gulp から実行してみます。 (柔軟性を考えると、こちらの方が良いかも。) 前提環境 OS:Mac OS X 10.9.5 Bable:5.4.7 gulp:3.8.11 gulp-babel:5.1.0 npm:2.7.5 手順 ① gulp と gulp-babel をインストール 適当なプロジェクト用ディレクトリを作り、
手元の Swift のバージョン:1.1 例えば次のような適当な関数 hogeMethod() を定義する。第3引数は関数オブジェクト。 // 第3引数でコールバックとして実行したい関数オブジェクトを受け取る func hogeMethod(name: String, age: Int, callback: (String) -> Void) -> Void { // とりあえず例として第1引数(名前)と第2引数(年齢)からメッセージ文字列を作成 let message = "\(name)さん\(age)歳ですね" // 処理が終わったら第3引数で受け取った関数を実行。今回はメッセージを渡す callback(message) }
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
手元でコードを書きながら React.js を学習しようと、タイトルどおりの最小構成を作ってみました。 上記の公式ページの Starter Kit や Tutorial の構成が物足りなかったので.. GitHub に置いたので、よろしければ参考にしてください。 ⇒ https://github.com/hkusu/react-babel-browserify-gulp-sample 上記の README.md に記載している通り、特徴としては次のとおりです。 ECMAScript 6 構文のサポートおよび JSX ファイルのコンパイルに Babel を利用 依存モジュールの管理(CommonJS準拠)に Browserify を利用 タスクランナーとして gulp を利用 またサンプルコードとして、簡単なデータバインドを React.js で実装してあります。デモは こちら(GitHub
一番簡単に実現するには、$http サービスで外部APIコール時に cache: ture オプションを渡します。 cacheFactory 内の $http という名称の領域にキャッシュされます。 '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 T
Rails 4 で作るアプリケーションで、Viewのテンプレートで Haml を使えるようにしたのでメモ。 前提 今回はローカルの Mac に 構築した Rails 環境に導入しています。 OS のバージョン: Mac OS X 10.9.4 (Mavericks) Ruby のバージョン: 2.1.2 Railsのバージョン: 4.1.1
前提環境 OS:Mac OS X 10.9.5 Node.js:0.10.32 Node.js は Mac に既にインストールされている前提です。 私は Homebrew でいれました。インストーラーでいれたものでもいいと思います。 また Heroku を利用する準備が整っていること。 手順は過去に似たようなものを書いたので、よろしければ参照ください。 → Rails4のアプリケーションを Heroku へデプロイする手順 手順 Node.js(express)の基本形を作成 適当にプロジェクト用のディレクトリを作り、
今回は単純に、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
ということで、試してみた。手を抜くために、angular-qr というのを使いました。 結果(デモ) 今回、作ったものの ⇒ http://hkusu.github.io/AngularJS_QR_demo/ 英数字を入力すると、リアルタイムでQRコードが生成されます。 導入手順 前提 開発環境 は Mac OS X (Mavericks) です。 AnuglarJS の環境構築は、Yeoman と generator-angular を使いました。 雛型を作るまでの手順は、前に投稿したこちらと同じ感じ。 AngularJS の Yeoman雛型に Application Cache を導入 手順(AngularJSの雛型の生成後) Bower で angular-qr をインストール
シチュエーションとしては、APIサーバ側がまだ開発中でその代替を用意したい場合や、デモやモックを Amazon S3 や GitHub Pages 等に載せるために、静的リソースのみでアプリケーションを構成したい場合。 ngMockE2E は本当は E2E テスト用のものっぽいですが、ダミーの API サーバとしても活用できます。 個人的には GitHub Pages にデモを載せることが多いので重宝。 ※ 執筆時点の AngularJS のバージョンは 1.3.8 です。 導入方法 ① Bower でインストール --save オブションにより bower.json に追記されます。もしくは先に bower.json に追記してから $ bower install でもいいです。リリースビルドに含めるには bower.json 中の devDependencies エリアでなく depe
これは 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ページを開く