BottomNavigationViewのテキストを常に表示
最近はKotlinを使って、Android案件を進めています。
今までiOS案件ばかりこなしていたため、違いに戸惑っているところです…。
さて、AndroidにもiOSで言うところのTabBarController的なものがあります。
ですが、これがデフォルトだとアイコン下のテキストもアクティブ時しか表示されません。
テキストを常に表示するには、layoutのxmlファイルでBottomNavigationViewに
app:labelVisibilityMode="labeled"
を追加します。簡単ですね。
supportLibraryが古いバージョンの情報が多くヒットしたため調査して投稿した次第です。
なお、古い書き方では以下のとおり。
// supportLibrary:28以降だとsetShiftingModeでExceptionが発生する
bottomNavigationItemView.setShiftingMode(false)
bottomNavigationItemView.setChecked(false)
動作確認したライブラリのバージョン
supportLibrary: '28.0.0'
Raspberry Pi の Rails で Hue をコントロールできるようにしてみた
土曜日の朝、仕事をしていたら最近あまり使っていない Raspberry Pi と本体ジャストサイズの多分 3.5 インチくらいのタッチパネルがあったので、書斎用に時計を作ってみました。
時計自体は HTML と JavaScript と CSS でなんとかなるなー、と思ったのですが、どうせなら部屋の照明(自宅の照明は基本的にほとんど Hue)もコントロールしたくなってしまって、じゃあ Rails で作ってみようと。なので HTML は haml、JavaScript ではなくて CoffeeScript で書いたんですが・・・。ちなみに時計の下に表示されている天気はテキトーに API 叩いて取ってるんですが、今回はそっちは端折ります。
そんなわけで Hue を Ruby から扱う方法の備忘録。
Visual Studio Codeでruby-debug-ideを使ってデバッグ
弊社の開発メンバーは、AtomやVisual Studio Code、Emacsなどそれぞれが好きなエディタを使用してRailsのアプリ開発を行なっています。
私は以前はAtomを使っていましたが、Atomにプラグインを入れすぎたからか重くなったので
ここ1年くらいはVisual Studio Codeを使っています。
Railsのデバッグはpryです。
Visual Studio Codeを使っていると右側にDebuggingアイコンが表示されています。
今まであまり気にしていなかったのですが
これ、どうやって使うんだと思い使ってみました。
Let's EncryptのSSL証明書を使ってみた
Let's Encryptについて
Let's Encryptは2016年4月に正式に開始された認証局で、無料で利用できるSSL証明書を提供しています。
Let's Encryptのコマンドライン、certbotを使用するとSSL証明書の取得や更新が行え自動化できるようになります。
環境
- サーバー : さくらのVPS(CentOS7)
- Webサーバ:nginx
Let's Encryptで取得したSSL証明書を開発用のサーバーにインストールしてみます。
.gitignoreのテンプレートを利用する
新しくプロジェクトを開始しgitでソースを管理する場合は.gitignoreを作成しますが、
githaubからgitignoreのテンプレートを取得すると便利です。
Dialogflowでチャットボットを作ってみた
GoogleのDialogflowで簡単なチャットボットを作成ししたみたので手順などご紹介します。
今回は、Dialogflowでチャットボットを作成しAction on GoogleのSimulatorで実行してみました。
Agentを作成
最初にDialogflowのページからAgentを作成します。
HackMD + Nginxで社内ナレッジをイイ感じに整理する
導入背景
弊社ではBacklogを使ってプロジェクト管理をしています。
そのBacklogではWikiや課題に対するコメントにTipsとか問題解決策とか様々な社内ナレッジが蓄積されています。
蓄積されてはいます…が…それが散在していて中々探しづらい、または似たような記事があったりするため、整理しようと思いたちました。
どのツールを使用するか?
整理しようとは思いましたが、どんな方法で、どんなツールを使用するか色々と悩みました。
が、以下のようなメリットから HackMD を使用することにしました。
- リアルタイムプレビュー
- URLから共同編集ができる
- スライドモード(社内会議で使える)
- Tag管理
- パッと開いてすぐ書ける(←これ大事)
凄くシンプルなTOP画面です。
新しく作る・削除する・検索する、とやりたいことがコンパクトにまとまっています。
JavaScript の文字列検索と使い分け
JavaScript で文字列を検索する場合、いくつかの方法が用意されている。
- indexOf
- match
- test
- search
とりあえず違いを表にしてみた。他にも exec とかあった気がするけど、とりあえず。
単純な文字列 | 正規表現 | 戻り値 | クラス | |
---|---|---|---|---|
indexOf | ○ | × | Integer (マッチしたインデックス) | String |
match | △ | ○ | Integer (マッチしたインデックス) | String |
test | △ | ○ | Bool | RegExp |
search | △ | ○ | Integer (マッチしたインデックス) | String |
使い分けとベンチマーク
まずはそれぞれの検索スピードのベンチマークを資料として。
JavaScriptで文字列の有無判定方法の速度ベンチマーク(indexOf、match、test)
ちなみに上記の表で「単純検索」で△が多いのは、正規表現を使って単純検索するとかならできるから・・・みたいな感じです。
次にそれぞれの使い分け方をざっくり書いておく。
Xcode の Interface Builder で UIView(とその継承クラス)の角丸を設定できるようにする
最近 Swift やってます。すごく楽しいです。
さて。
Interface Builder・・・って今は呼ぶのかわからないけど、そこで設定できない UI の制御用のコードを viewDidLoad とかにいっぱい書くのが嫌になって調べたら、@IBInspectable というのを使うといろいろできることがわかったのでメモ。
extension UIView {
@IBInspectable
var cornerRadius: CGFloat {
get {
return self.layer.cornerRadius
}
set(radius) {
self.layer.cornerRadius = radius
}
}
}
今回のサンプルは UIView の角丸設定を追加してみた。