サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
iPhone 16
waka.github.io
本当に今更ながら、通勤でPodcastを聴くことが習慣づいてきた。 なんかこの1年くらいTech系のPodcast増えてませんか。どれも面白くてすごい。 自分の携帯端末はAndroidなのでFM Playerというアプリで聴いていて、非常に高機能でよくできたアプリなんだけど、自分にはオススメ番組や後で聴く機能とか必要なくて、なんかもうちょっと軽くて操作に集中できるUIのアプリないかなと探してもしっくりくるのがなかった。 そんな折、年末に新しいAndroid端末に変えてAndroid愛が高まったのと、ここ最近Android開発ご無沙汰だったので、最近の開発環境をキャッチアップするのも兼ねてPodcastアプリを作ってみました。 というわけで、先ほど78.9(7hack)というアプリをPlayStoreに公開しました。よかったら。 Podcastを「探す」「見る」「聴く」に特化した機能のみなの
RailsのAsset PipelineとPrecompileをNode.jsのみで処理できるgulp-sprocketsを作った 仕事ではRailsアプリを書いていて、JSやCSSなどのフロントエンドはRailsのAsset Pipelineの仕組みに則ってビルドしてる。 普通にRailsアプリ作ってると普段Sprocketsについて特に意識しないと思う。 Sprocketsはそこが凄くて、あまり考えなくてもドキュメント通りにやってれば、必要なAssetを結合できて、リリース時は変更がなければブラウザキャッシュから、変更があれば 新しく読み込まれるみたいなことをやってくれる。 なんだけど、もうそろそろ新しい機能はES2015で書きたいよねという人が増えてきた。 とはいえSprocketsは独自のディレクティブ以外は使えなくて、SprocketsWayから外れると途端に脆い。 ES2015
最近のnpmライブラリ書くときのpackage.json Node.js Advent Calendar 2015 12日目の記事です 最近はES2015で書き出すのが普通になってきたので、初期構成がだいたい似たような感じになってる。 { "name": "<NAME>", "description": "<DESCRIPTION>", "version": "0.1.0", "repository": { "type": "git", "url": "<GITHUB URL"> }, "main": "./lib/index.js", "files: ["lib"], "directories": { "test": "test" }, "devDependencies": { "babel-core": "*", "babel-plugin-transform-es2015-modul
先週 Macbook Air を新しいマシンにリプレースした際に、環境構築どうしようかなーと思って、homebrew-caskを使ってみたらかなり捗った。 Mac上の環境構築でよく聞くのは、GitHubが公開しているBoxenだと思うけど、PuppetのDSL覚えるの面倒くさいし、パッケージ情報をメンテナンスするのも結構ヘビーだったりする。 対してhomebrew-caskは、Homebrewの仕組みを拡張して、GUIアプリも入れられるようにして、全部brewコマンドで管理できるようにしようぜという思想で作られている。 1つずつコマンド打って全部入れていってもいいんだけど、最近のHomebrewはBrewfileを使ってパッケージ管理できるので一発で入れられて便利。 # Make sure using latest Homebrew update # Update already-inst
volley(サブプロジェクト)のbuildToolsVersionをafterEvaluateで上書く Android StudioがBetaになったので、0.8.2に上げようとしたらモジュールのビルドでハマった。 Android Studioのバージョンを上げるときは、build.gradleを弄る時でもある。 Betaに上げるからには最新版のGradleプラグインとAndroid SDKでコンパイル&ビルドできるようにしたい。 // project/gradle/gradle-wrapper.properties distributionUrl=http\://services.gradle.org/distributions/gradle-1.12-all.zip // project/build.gradle buildscript { repositories { mavenC
少し、いやかなり前に渋谷Javaで「Android meets RxJava」というタイトルでLTしてきました。 スライド上げるのが遅くなってすいません。。。 freeeのAndroidアプリの開発前にチーム内で考えていたのが、テストの書きやすさを考慮するとどうしてもFragmentとAPIのやりとり含むビジネスロジックを切り分けたいというところで、 ViewController/ViewModel/Modelを上手く疎に分けられる仕組みが必要でした。 先行して開発していたiPhone版では、ReactiveCocoaを導入して上手くいったこともあり、FRPが出来るJavaのいいライブラリはないか探していたところ、上手くマッチしそうだったのがRxJavaでした。 RxJavaのObservable、Subscriber、Func/Actionを使うことで、API呼び出し/モデルへの変換/画
ウチの会社ではHipchatとGitHubを開発のコミュニケーションの中心にしている。 だんだん人も増えてくると、以前よりプルリクの数がそれだけ増えて、レビューで1日終わってしまう人がでてきた。 昔から仕様を知っている人にレビューが投げられがちで集中しやすいとかは他の会社でもよくある話しだと思う。 レビューは自分のタスクと同様に大事だけど、それで自分のタスクが全くできなくなったり、新しく入ってきた人がレビューする機会を失うのはあまりよくない。 というのもあって、Hubotを立ててみてプルリクのレビュアーをランダムで振れるようにしてみた。 Hubotというのはご存知Hipchatのbotとして動くプログラムで、botにコマンドを指定してリモート実行させたり、特定の文字列に反応させたりということがHipchat上でできる。 CoffeeScriptでスクリプト書けるのでとてもお手軽。 sush
2/22発売のWEB+DB PRESS Vol.79のJavaScript連載で「AngularJS」をテーマに記事を書きました。 こんな感じのことを書いてます。 AngularJSについて AngularJSの主な機能 2wayバインディング スコープ モジュール コントローラ Dependency Injection (DI) サービス ディレクティブ AngularJSアプリケーションのファイル構成 AngularJSを使って本格的にアプリケーションを作っていくのに最低限必要な要素について解説しています。 AngularJS触ってみようかなーとか、とりあえずHelloWorldしてみたけどどういう機能があるのかいまいち分からないなー。 といった人のお役に立てれば幸いです。 以下、短いですけど執筆後記です。 2年間続いた「JavaScript活用最前線 -大規模開発の現場から-」は今号
つまり、UITableViewControllerをふんだんに使っていたり、UIViewControllerを継承したベースクラスを作っていると、1つ1つのビューに同じ処理を書かないといけない。 これは絶対入れるの忘れそうなのでなんとかしたい。。。と思って調べてみた。 Objective-CにはMethod Swizzlingという、すでに実装されているクラスのメソッドを自前のメソッドに入れ替えるやり方が用意されているらしい。 "objc/runtime.h"が提供している、method_exchangeImplementations関数を使えばクラスメソッドの入れ替えが可能になる。 これを使ってUIViewControllerのメソッドを入れ替えれば各画面ごとにアナリティクス処理を書かずに済みそう。 つまり、UIViewControllerのカテゴリ拡張を作って、viewDidAppea
AngularJS黒魔術のうちの1つ。DI。 コントローラーの引数に$httpなどを指定すると、なぜ何もしなくてもHttpProviderの返り値が入ってくるのか。 var userControllers = angular.module('userControllers', []); userControllers.controller('UsersCtrl', function($scope, $http) { $http.get('users/index.json').success(function(data) { $scope.users = data; }); }); function invoke(fn, self, locals){ var args = [], $inject = annotate(fn), length, i, key; for(i = 0, lengt
AngularJSの特徴でもある、モデルとビューの2way binding。 AngularJSの簡単なコードがあるとする。(投稿時点ではv1.2.6) <body ng-app ng-init="message = 'nothing'"> <div ng-controller="SampleCtrl"> <input type="text" ng-model="message"> <br> <button ng-click="clearMessage()">Clear</button> <br> <span>{{getMessage()}}</span> </div> <script> var SampleCtrl = function($scope) { $scope.message = ''; $scope.clearMessage = function() { $scope.mes
このページを最初にブックマークしてみませんか?
『waka.github.io』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く