読者です 読者をやめる 読者になる 読者になる

techium

このブログは何かに追われないと頑張れない人たちが週一更新をノルマに技術情報を発信するブログです。もし何か調査して欲しい内容がありましたら、@kobashinG or @muchiki0226 までいただけますと気が向いたら調査するかもしれません。

Rails Tutorial 5 Basic login

Rails Tutorial 5 Basic login 今回は Chapter 8/ Basic login | Ruby on Rails Tutorial (Rails 5) | Softcover.ioに沿って認証システムを導入し、ユーザーがログインとログアウトをできるように作り変えていく。 Rails Tutorial 5 Basic login Sessions Lo…

Rails Tutorial 5 Sign up

Rails Tutorial 5 Sign up Chapter 7/ Sign up | Ruby on Rails Tutorial (Rails 5) | Softcover.io に沿って、今回はユーザー登録機能を追加していく。 HTMLフォームを使用して登録情報をWebアプリケーションに送信し、ユーザーを新規作成して情報をデータ…

サムザップテックナイトvol.1 に参加してきました

サムザップテックナイトvol.1 に参加してきました 株式会社サムザップが開催する下記に参加してきました。 【好評により増席!】サムザップテックナイトvol.1 - connpass 【サムザップテックナイトとは?】 テーマに合わせて専門性の高い方をお呼びし、全て…

AutoLayout入門

Viewの矩形を表示する 矩形を表示することで、Viewのサイズや実際の表示位置、他のViewとの距離などをデバッグしやすくなる。 Viewをデバッグするときは表示させてみると良い。 以下の手順でViewの矩形を表示できる ワークスペースツールバーからScheme Menu…

ftpにあれこれするのを自動化したい

Motivation ftpに上げたり下げたりするのがちょーめんどくさい。 python自動化するんや!みたいな気持ちに。 Motivation pexpectってモジュールがある 簡単に使い方 spawn expect sendline 作ったサンプル

StreamAPIをAndroidで使いたい時にRxJavaとLightweight-Stream-APIどちらを選べばいいのか調べるため計測してみました

Androidのアプリ開発をする際にJava8のStreamAPIを使いたいと考えることがあると思います。 2016/11/12時点では次の2つのライブラリでSteramAPIを使うことを可能とします。 Lightweight-Stream-API RxJava StreamAPIを外部のライブラリで実現した際に遅いと…

RailsでPostgreSQLを使えるようにする(Cent OS 6)

RailsでPostgreSQLを利用しようと思ったら結構めんどくさかったので備忘録。 【環境】 Cent OS 6 Rails 5.0.0.1

Rails Tutorial 5 Modeling users

Chapter 6/ Modeling users | Ruby on Rails Tutorial (Rails 5) | Softcover.io ユーザー登録ページを作っていく。 ユーザー用のデータモデルの作成と、データを保存する手段の確保について学ぶ。 Chapter 6/ Modeling users | Ruby on Rails Tutorial (Rai…

Rails Tutorial 5 Filling in the layout 2

Rails Tutorial 5 Filling in the layout 2 Rails Tutorial 5 Filling in the layout 2 SassとAsset Pipeline Railsのルート 統合テスト ユーザー登録: 最初のステップ まとめ

AndroidのライブラリプロジェクトでHugoのログを表示する

Androidのメソッドの呼び出しなどでログを表示をアノテーションが付与されているメソッドの呼び出し時に呼び出し時の引数の表示とをログに表示するライブラリです。 ただしAndroidのライブラリプロジェクトではビルドの設定の関係でログが表示されません。 …

Rails Tutorial Chapter 5 ling in the layout

Chapter 5/ Filling in the layout | Ruby on Rails Tutorial (Rails 5) Chapter 5/ Filling in the layout | Ruby on Rails Tutorial (Rails 5) レイアウトの作成 構造を追加する BootstrapとカスタムCSS パーシャル

Annotationを自作する

普段Androidアプリの開発を行っている際に、何の気なしにAnnotationを使用していましたが、ふとその仕組みが気になりました。 Annotationを利用することで二重化を防いだりコード量を減らせたりといった利点もありますが、個人的には使いすぎると可読性が下…

Rails Tutorial 4 Rails-flavored Ruby

Rails Tutorial 4 Rails-flavored Ruby ここまで Rails を諸々触ってきたが、この章では Rails 習得に必須となる Ruby の様々な要素に触れていく。 Rails Tutorial 4 Rails-flavored Ruby 高度なセットアップ minitestレポーター Guardによるテストの自動化 …

AndroidのPercelデータを自動生成するAutoValueを使ってみる

Googleがautoというライブラリ群の中にあるAutoValueというデータクラスを自動生成するライブラリがあります。 このAutoValueではJavaの一般的なデータクラスの生成しかできないためAndroidのインターフェースのParcelableを実装したものを自動生成すること…

Rails Tutorial Chapter 3 Mostly static pages

Rails Tutorial Chapter 3 Mostly static pages Rails Tutorial Chapter 3 Mostly static pages ほぼ静的なページの作成 セットアップ 静的ページ コントローラの生成 テストから始める 最初のテスト リファクタリング 少しだけ動的なページ タイトルのテス…

Rails Tutorial マイクロポストアプリを作る

Rails Tutorial マイクロポストアプリを作る Rails Tutorial マイクロポストアプリを作る Toy アプリケーション ベース作成 scaffold データベースのマイグレート Rake ユーザ管理画面 マイクロポスト管理画面 validates ユーザとマイクロポストの関連付け

Android 7.0 Nougatのマルチロケールについて

Android 7.0 Nougatから、マルチロケールが採用され、それに合わせてシステムのロケール選択のロジックが変更になったようです。 developer.android.com 今回は、以下の公式ドキュメントを参考に、マルチロケールを選択できるようになることで何が変わるのか…

QuantumFluxを使ってContentProviderを作成する

AndroidのContentProviderを作るときにsqliteを使っているケースがほとんどだと思います。 しかし昨今のORMではsqliteを作るのは簡単ですが、ContentProviderでの適応が難しいケースが多々あります。 そこでContentProvider用のORMとしてQuantumFluxというの…

Rails Tutorial "Hello World ~ デプロイまで"

Rails Tutorial "Hello World ~ デプロイまで" Rails Tutorial "Hello World ~ デプロイまで" Model-View-Controller Hello World Git Heroku PostgreSQL Deploy その他

Android 7.0 Nougatでクイック設定(Quick Setting)を追加する

Android 7.0 Nougatで新しく追加されたTile APIを利用することで、クイック設定(下図)を自作することができます。 developer.android.com developer.android.com 今回は上記リンクを参考に、クイック設定の追加方法について見ていきます。 TileServiceを作…

RelativeLayoutとConstraintLayout

Motivation ConstraintLayoutがリッチなRelativeLayoutと聞いて、RelativeLayoutの置き換えに使いたいけれど、癖でGUIエディターが受け入れられないので練習がてら置き換えのサンプルを書いてみたよ Motivation サンプルのView構造 RelativeLayoutバージョン…

AndroidのWindowManagerでViewを表示するときのIMEの制約

Androidのアプリを作っている時にどの画面よりも手前にViewを表示したい時にWindowManagerを使って特定の指定レイヤーに対してaddViewを行うケースがあります。 しかし、このaddView時に発生するIMEの表示の制約があるのでそれをご説明します。

Macのzshでpyenvが「command not found: pyenv」

PythonをMacにインストールする際にHomebrew+pyenvで開発環境を整えようとした時に「command not found: pyenv」と表示され正しくバージョンの切り替えができなかったのでその内容をまとめました。

Android 7.0 Nougatの新しい外部ストレージアクセスを試してみた。

Android 7.0 Nougatでは新しい外部ストレージへのアクセス方法が提供されました。 developer.android.com developer.android.com これまでAndroidで外部ストレージにアクセスするには、ManifestファイルにPermissionを定義し、さらに6.0からはパーミッション…

Android7.0 nougatがリリースされたので手持ちのNexus5xをアップデートしてみた

Nougatがリリースされました。 Nexus端末を持っていたとしても、OTAアップデートが配信されるのはしばらく先になるだろう。 この記事は最新OSのOTAが降ってくるのを待ちきれない人向けの記事です。 端末の手動アップデートは文鎮化などの危険が伴います。自…

RUBY ON RAILS TUTORIAL (RAILS 5)

RUBY ON RAILS TUTORIAL (RAILS 5) Rails チュートリアルを始めてみたがすっかりご無沙汰。 Rails 5 が出てしまったことだし仕切り直し。 RUBY ON RAILS TUTORIAL (RAILS 5) 参考 ゼロからデプロイまで クラウドIDEでRailsサーバーを実行

iOSDC 2016 に参加してきました

iOSDC 2016 2016年8月20日午前10時3分 土 iOSDC 2016 に参加してきました。 とても濃く、参考になる内容ばかりでした。 次回開催があれば是非また参加したいです。 懐かしい面々にも再会でき、そういった意味でも参加してよかったです。 try! Swift で「凄い…

FirebaseでAuthを用いたパスワード認証を行う

Firebaseではユーザ認証を行うことでデータの安全性を確保することができます。特にRealtime Databaseを利用する際に、データにアクセスしているのが誰なのかを確認することはとても重要です。 Firebaseでは幾つかのユーザ認証方法が用意されていますが、今…

Spinnerのデータとしてenumの配列を使用する場合のTIPS

Spinnerの表示データとしてenumを使用したときに引っかかった罠があったので共有したいと思います。 Spinnerとは Spinnerは複数の選択肢から一つの要素を選択するためのUIを提供するWidgetです。 詳しいことはDeveloperサイトを御覧ください。 developer.and…

Android Studioにコードジャンプするログを作る

Androidのstacktraceなどでコードジャンプするログが表示されています。 コードジャンプ自体はAndroidStudioの機能になるのですが、ログの作り方を工夫することでコードジャンプすることができるログを作ることができます。 そこで今回はコードジャンプする…

オープンソースになったLaunchKitのセットアップをしてみた

LaunchKitとは LaunchKitとは、モバイルアプリのリリース用スクリーンショットの作成やアプリ用Webサイト(ランディングページ)の作成、アプリレビューのモニタ、売り上げの管理など、モバイルアプリのリリースに関わることを色々便利に管理できるものであ…

Active Recordを利用してRubyのアプリを作る

Active Recordは、Ruby on Railsでも利用されているORマッパーのgemパッケージですが、RailsではないRubyアプリで単体利用することもできます。 今回たまたまRubyで利用したい思う機会があったので調べて試してみましたので備忘録です。

FirebaseのRealtime Databaseでルールを試してみる

今回は、Firebase Realtime Databaseのルールについて調べてみました。 ルールを設定することで、Firebaseに保存されたデータに対して読み書きを行う上での条件を付与することができます。 ここではそのサンプルを用意して確認してみます。 基本的にはこの辺…

RxJava Mathを使って最大・最小・平均・合計を計算する

RxJavaを最近使うことが多くなってきてストリームに流れているデータ内の最小値と最大値を取ることができないか調べておりました。 そうするとRxJavaのMathというのがありそれで実現できたのでそのやり方とMathの機能についてごしょうかいします。

Androidオールスターズ2

Androidオールスターズ2 2016年8月7日午後1時30分 日 【満員御礼につき50席増枠★】Androidオールスターズ2 - dots. [ドッツ] 参加してきました。 メモ書き程度ですが、後日資料も公開されるとのことで楽しみにしています。 大変学びが多く、刺激のある内容…

AndroidライブラリからアプリケーションプロジェクトのBuildConfigの値を参照する

Androidアプリ開発の際にオープンソースのライブラリを組み込むことが多いと思います。 そういった中でアプリのデバッグの時にはライブラリのログを出したいとかデバッグの時だけこういった挙動をしたライブラリがほしいことかがあります。 そこで今回はaar…

FirebaseのRealtime Databaseを利用してみる 〜その2〜

前回に引き続き、FirebaseのRealtime Databaseについてです。 今回は、前回保存したデータをクライアント上から参照してみます。 Realtime Databaseはその名の通り、データベースに変更があった場合に、それをリアルタイムにクライアントに反映させることが…

Retrofit2のレスポンスをmockに置き換える Retrofit-Mock編

前回の記事では、MockWebServerを使用してサーバ自体をMockに置き換えた。 blog.techium.jp 今回はRetrofitMockにてResponseの内容をMock化する方法を使う。 build.gradleの修正 // レスポンスのパースにgsonを使用 compile 'com.squareup.retrofit2:convert…

ContentProviderアクセステスト用ライブラリPantomimeを公開しました

Androidの開発を行うにあたってContentProviderへアクセスする場合にContentProviderの中身が動的に変化する場合にテストを書く場合に同じ環境にならなくてユニットテストが失敗したりすることがあります。 そこで今回作ったPantomimeを紹介します。

ちょっといい加減会社でGit布教したいんや

そろそろGitわからんまんがいい加減に減って欲しい この資料が役に立つことをいのって。 Learning git from Shinji Kobayashi 主にGitlabの布教用に書きました。 Gitlab云々よりもGitコマンドについて厚めに。 いつもだいたい聞かれて答えるようなやつだけな…

FirebaseのRealtime Databaseを利用してみる 〜その1〜

FirebaseのRealtime Databaseを利用してみました。と言っても、まだデータを登録しただけなので、導入編といった感じです。 Realtime DatabaseはFirebaseがクラウド上に提供するNoSQL型のデータベースです。 今回はこのRealtime Databaseを利用して、データ…

Retrofit2のレスポンスをmockに置き換えるMockWebServer編

ユーザー登録画面など、ネットワーク通信を伴う画面のUIテストするとき、実際のサーバへアクセスしては、テストが意図した結果にならないことがあるだろう。 MockWebServerを使用することで、サーバへのアクセスを回避し、かつ、必要なレスポンスを返すよう…

gitでremoteレポジトリにあるファイルを探したい

Motivation AOSPのtools/base辺りをビルドしようと試行錯誤していると、なんかこのファイル参照してるけど、いったいどのブランチにいるの? みたいなことによくなるのでスクリプト書いてみたよみたいな。 Motivation 探す対象 リモートブランチのファイルを…

Intellij Ideaプラグインでモジュール生成時にフォルダ/ファイルを作成する

Intellijでセットアップウィザードを作成を前回行いました。 blog.techium.jp そこでセットアップウィザードを終えたあとにプロジェクトフォルダにファイルの自動生成を行う方法をご説明します。

Realm JavaのRealmQueryをループで使ったらヒドい目に遭ったという話

先日からAndroidアプリの開発でRealmを使っていますが、今回はRealmの仕様なのかバグなのかよくわからない挙動にハマってヒドい目に遭ったというお話。 歴戦のRealmerには既知の問題かもしれないので何か情報をお持ちの方は適宜突っ込んでもらえると助かりま…

ChefのKnife用プラグインを作ってみた

こちらの記事でも触れていますが、ChefはKnifeというコマンドラインツールを使用してリポジトリ操作を行います。 Knifeにはサブコマンドが多数用意されており、それらを使ってリポジトリの作成やクックブックの作成を行うわけですが、自分で新たにプラグイン…

Nearby Messages APIを使ってみた iOS API使用方法

前回は、iOSのプロジェクトの設定とGoogleDeveloperConsoleの設定について説明した blog.techium.jp 今回は実際のAPIの使用方法について解説する MessageManagerの初期化 Nearyby Messageのpublishとsubscribeを管理するクラスである、GNSMessageManagerを生…

ワークフローエンジンDigDagのSlackプラグイン公開しました

DigDag用のSlackプラグインの作成記事を下記で行いました。 その続報となります。

Intellij Ideaプラグインでセットアップウィザードを作る

Androidの開発やJavaアプリの開発など様々な場面で利用されるintellijですが機能を追加する機能としてプラグインがあります。 そこで新しい言語や新しいプロジェクト構成の画面を作りたい場合にプラグインを作成してサポートする機能を追加することができま…

ChefでLet's Encryptを利用するためのDefinitionを定義してみた

Chefのレシピを記述する際は、リソースを使用することで簡単にパッケージのインストールやサービスの起動、フォルダの作成などを行うことができます。 Chefから提供されているリソースには便利なものがたくさんありますが、Definitionを使えば自分で作成する…