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

ほげほげ(仮)

仮死状態

DroidKaigi 2017で発表してきた

MVVMについて話してきました。 このMVVMについて色々と議論はあるかと思いますが、まずはスタートラインに持っていけたかなと思ってます。これを元に色んな方が実践し議論してもっと良い方法を共有してくれるのを期待しています。今日も質問を受けたり議論も…

RxJavaのHotObservableのテストコード

HotObservableのテストコードを書く方法です。ちょっと調べたのですが、良い方法が見つからず自分なりに考えてみました。 もっと良い方法あったら教えてください。 環境 ごめんなさい、RxJava1です。RxJava2まだ追えてません。 対象コード 単純な足し算をし…

ObjectBox所感

greenrobotが新しいmobile object databaseのObjectBoxのBetaをリリースしたようです。 ObjectBox - The new Mobile Database (Beta) - Open Source by greenrobot greenrobotは、EventBusやgreenDAOを作ったとこです。 AndroidにおいてはRealmと競合になり…

Google Play ConsoleにAPKファイルをアップロードするGradle Pluginを作った

タイトルのとおりです。 ファイルを指定してAPKファイルをPlay Consoleにアップロードするだけです。 あと、Proguardのmappingファイルもついでにアップロードできます。 github.com たぶん認証のJSONのやり方が分からないかなぁとか思ってます。 今のREADME…

2016年に買って良かったもの

Pebble Time Round Pebble Time Round 極薄かつ超軽量の丸型スマートウォッチ「ペッブルタイム・ラウンド」Silver with Nubuck Brown Leather [並行輸入品]出版社/メーカー: Pebbleメディア: エレクトロニクスこの商品を含むブログを見る つい最近Fitbitに買…

PlayStation4 Proと周辺機器の話

PlayStation4 Proと周辺機器について雑に書きました。何か参考になれば。 PlayStation4 Pro PlayStation 4 Pro ジェット・ブラック 1TB (CUH-7000BB01)出版社/メーカー: ソニー・インタラクティブエンタテインメント発売日: 2016/11/10メディア: Video Game…

やさしいDagger2

Androidその2 Advent Calendar 2016 - Qiita 2日目の記事です。 Dagger2は最初のハードルが高くてなかなか導入できなかったり、メリットがよく分からなかったりします。そういう方が雰囲気だけでも掴めれるように、簡単なサンプルを実装しながら確認できる…

ToolbarはFragmentに持たせても良いと思う

Y.A.M の 雑記帳: Fragment に Toolbar を持たせるのはやめなさい を読んで思ったことです。 ぼくはFragmentにToolbarを持たせても良いと思ってます。 もちろんActivityに置くことでFragment側がシンプルになるので、極力そうしたい感じですが、色々と事情が…

MESHを使って鍵の閉め忘れをなんとかする

MESH買ってみた。あとで遊ぶ。 pic.twitter.com/jfw1chhcKe— すたぜろ (@STAR_ZERO) 2016年8月19日 MESHとは MESH:遊び心を形にできる、アプリとつなげるブロック形状の電子タグ|ソニー さまざまな機能を持ったブロック形状の "MESHタグ" を "MESHアプリ" …

CQRSのメモ

CQRSって知らなかったので調べました。かなり雑なメモです。 参考リンクとかではEvent Sourcingについても絡んできますが、ここでは触れてないです。 参考 ここにある記事を読みました。英語のとこはなんとくで読んだので怪しいですが。 ぼくのこのメモを読…

XCTestでthrowsをテストする

環境 Xcode 7.3.1 Swift 2.2 テスト対象コード テストの対象となるサンプルコードです。 エラータイプの定義です。 enum SampleError: ErrorType { case Invalid case Unknown } エラーをthrowするコードです。 class Sample { static func exec() throws { …

Firebase Cloud Messagingで通知をカスタマイズ(Android)

Firebase Cloud Messaging (FCM)を試して、通知のカスタマイズについて調べてみました。 FCMとNotification FirebaseにはFCMとは別にNotificationという似たようなのがあります。 この辺りの違いは下記の記事にまとまってます。 Firebaseによるプッシュ通知…

RecyclerViewでDataBindingを使う

RecyclerViewでDataBindingを使用する簡単なサンプルです。 Gradle DataBindingの設定をしておきます。 android { // ... dataBinding { enabled = true } } データクラス サンプル用に次のような簡単なデータクラスを用意します。 public class Item { publ…

CircleCIでAndroidのビルドとテスト

CircleCIでAndroidのビルドとテストをするためのcircle.ymlのメモです。 circle.yml machine: java: version: oraclejdk8 dependencies: pre: - echo y | android update sdk --no-ui --all --filter "android-23,build-tools-23.0.3" test: override: - ./g…

AndroidにRetrolabmdaを導入する

今更な感じもしますが、AndroidにRetrolabmdaを導入する手順です。 RetrolabmdaはJava5,6,7でJava8のラムダ式を使えるようにしたものです。 ちょっと導入設定で少しハマったので手順を残しておきます。 環境 OS X El Capitan Android Studio 2.1 Android Gra…

Pebbleアプリを作ってみた

先月、Pebble Time Roundを買ったので、ついでにアプリも作ってみました。 アプリについて アプリページ 単純なSwarm(Foursquare)クライアントを作ってみました。 Swarmは公式でクライアントアプリあるのですが、チェックインするときにTwitterに投稿できな…

SupportLibraryのVectorDrawableを使う

ベクター画像のVectorDrawableを使うことで各解像度ごとに画像を用意する必要がなくなります。また画像を拡大してもぼやけることなくキレイに表示できるようになります。 元々はAndroid5.0以降からの対応だったのですが、Support Library 23.2.0から5.0未満…

健康についての話

今日誕生日を迎えて、34歳になりました。 若く見れられることが多いけど、おっさんです。 なんとなく思い立ったので、ぼくの健康状態について書いてみます。 状態 ぼくは腎臓の機能がうまく動いてないです。 まだ透析にはなってないですが、おそらく何年後か…

BotkitでSlackのSlash Commandを実装

最近、Botkitを色々いじっててSlash Commandについて調べたのでメモです。 今回のは1チームで使う感じの実装なので特にOAuthとかは使わないです。 標準のSlash CommandについてはHelpを参照してください。 Using slash commands – Slack Help Center 必要な…

2016年

あけましておめでとうございます! 去年の反省 去年はサボりすぎて何もしてない。 目標とか 英語 雰囲気で読んでたけど、ずっとキツイと感じてたのでちゃんと勉強しよう。 Android 年末辺りに個人で色々やってたら楽しかったので、もっとやってみたいかな。…

Androidでスクロールした時にToolbarを隠す

概要 Google Playのようにスクロールした時にToolbar部分を隠す単純な方法です。 SupportLibraryのみを使って実装できます。 余計な実装は極力省いていますのでActivityのみで実装してます。 注意 先に注意事項を。 これをLollipop未満のバージョンで実現す…

unitypackageに含めるファイルをコードで定義しておきエクスポートする

よく使う処理をまとめてunitypackageとして使えるようにしてるのですが、標準のExport Package...からだと含めるファイルを毎回選択しないといけないので非常に面倒です。 なので、コードで含めるファイルを定義しておき、それをカスタムメニューとしてすぐ…

UnityのAndroidでライブラリを使う

前回の続きになります。 概要 Unityの連携でaarを使うがGradleに設定した依存関係はそのままだと反映されないので、それをなんとかします。 例 今回は例としてAdMobを使う設定で。 この設定だとaarにした時にgoogle play servicesのライブラリはUnity側へ反…

AndroidStudioを使ってUnityとAndroidの連携

概要 UnityとAndroidを連携するには色々やり方あると思いますが、AndroidStudioを使ってaarを作成し連携させます。 色々調べてたらEclipseとjarを使った連携をよく見かけましたが、ADTがもう開発終わってしまうので今後はAndroidStudioを使うべきでしょう。…

μ's Go→Go! LoveLive! 2015 ~Dream Sensation!~

2日間ありがとうございました pic.twitter.com/zXgGJhlZEH— すたぜろ (@STAR_ZERO) 2015, 2月 1

SwiftのテストフレームワークQuickをインストール

Quickについてはココを参考に。 とりあえず、インストールしてちょっと試した時のメモです。 Quickのインストール Git Submodule ディレクトリVendorを作りSubmoduleとしてQuickをインストールします。READMEのココと同じ手順ですね。 Quick/Nimble はQuick…

2014年に買って良かったもの

PlayStation 4 PlayStation 4 ジェット・ブラック 500GB (CUH-1100AB01)出版社/メーカー: ソニー・コンピュータエンタテインメント発売日: 2014/09/30メディア: Video Gameこの商品を含むブログ (2件) を見る 何年ぶりかに据え置き機のゲームです。 Destinyっ…

ラブライブ関連で作ったものとかとか

ラブライブ! Advent Calendar 2014 - Adventar の1日目です。今回、勢いでアドベントカレンダーを作った本人です。 推しキャラはKKEでお馴染みのえりちです!!よろしくお願いします!! 何書けばいいか悩んだんですが、プログラマーなんかやらせてもらって…

AppExtensionを含むアプリのTestFlightアップロードスクリプト

基本的には以前書いた記事と同様です。 AdHoc用ビルド設定とTestFlightアップロードスクリプト - ほげほげ(仮) ですが、AppExtensionを含む場合はProvisioningProfileまわりが少し異なってますので、それのメモです。 ProvisioningProfile AppExtension含…

Swift + AppExtension + MagicalRecord

SwiftでコンテナアプリとAppExtensionのデータをMagicalRecordで共有する方法です。 (少しObjective-Cは必要になります) 注意 現状だとちょっと試した動いた状態なので何か問題があとからあるかもしれません。 あと、MagicalRecordはbeta版を使用するので…

Cocos2d-xでスレッドを使った遅延処理

ハマったのでメモ LayerやNodeのサブクラスの場合はscheduleOnceを使えば簡単に遅延処理は可能なのですが、それとは関係ない箇所で遅延処理をやりたかった。 環境 Cocos2d-x 3.2 サンプル #include "cocos2d.h" #include <unistd.h> USING_NS_CC; // ... auto delay = </unistd.h>…

Cocos2d-xでCocoaPodsを使う

CocoaPodsのバージョンをあげたら色々とハマってしまったのでメモです。 ここに書いたのはcocos newした直後からになるので、実装途中とかだと違う問題が発生する可能性があります。 環境 Cocos2d-x 3.2 CocoaPods 0.34.2 Xcode 6.0.1 Podfile proj.ios_mac…

アニサマ2014に3日全部いってきた

アニサマに初めて参戦してきました。しかも運良くチケットをゲットできたので、3日全部。 セットリスト → http://anisama.tv/special/setlist.php 感想 テンションあがりすぎて、ほとんど記憶に無い。 色々やばかった。 記憶に無いけど。 ただ、3日目のμ'sの…

AndroidからCocos2d-xの処理を呼び出す

AndroidのJavaからCocos2d-xのC++の処理を呼び出します。 Objective-Cに比べるとかなり面倒です。 あとで出てくるjavahの箇所は面倒なので、関数名の規則がわかるなら飛ばしても平気です。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) …

Cocos2d-xからAndroidの処理を呼び出す

Cocos2d-xのC++からAndroidのJavaの処理を呼び出す方法です。JNIを使用します。 Objective-Cの場合と違って結構面倒です。 ここの連携はEclipseで書いたほうが良いかもです。 関連 Cocos2d-xからObjective-Cの処理を呼び出す - ほげほげ(仮) AndroidからCo…

Cocos2d-xからObjective-Cの処理を呼び出す

Cocos2d-xのC++からObjective-Cの処理を呼び出す方法です。 Objective-C++ってのがあるのでこっちは比較的簡単です。Androidは面倒ですが。 関連 Cocos2d-xからAndroidの処理を呼び出す - ほげほげ(仮) AndroidからCocos2d-xの処理を呼び出す - ほげほげ(…

iOSキーボード上部にView表示とキーボード部分を置き換える

ちょっと良いタイトルが思いつかないし、なんかよく分かんないタイトルになってしまった。 やりたかったことはiOSはてブアプリのタグ入力の画面のようなやつです。 キーボード上部のSegmented Controlでキーボード部分が切り替えるみたいなことがやりたかっ…

Androidのデバッグ実行時にパッケージ名、アプリ名を変更する

パッケージ名変更 build.gradleを下のようにすると、デバッグ時はパッケージ名の後ろに.debugが追加されるようになります android { ... buildTypes { debug { applicationIdSuffix ".debug" } release { ... } } } アプリ名変更 buildTypeがdebug時はsrc/de…

Backlog課題の作成・更新をSlackに通知するやつ作った

タイトルのとおりです。 STAR-ZERO/backlog2slack 使い方はREADME見てください。(ちょっと設定面倒かも…) Backlog うちは課題管理はBacklog使ってるんですけど、この前APIがVersion2になりました。 Backlog API バージョン2をリリースしました | ヌーラボ …

MagicalRecordでSQLite初期データをコピーする

MagicalRecordを使っていて、SQLiteファイルをコピーする方法です。 最初は初回起動時にJSON等のテキストからSQLiteのデータを普通に作ってたのですが、データ量が多いとすごく時間かかるので、最初からSQLiteファイルを作っておいてコピーする方法にしまし…

バックグラウンドでNSURLSessionDownloadTaskのdelegateが呼ばれない時の対応

Remote Notification通知受信後にバックグラウンドでAPIからデータを取得しようとしたのですが、NSURLSessionDownloadTaskの完了delegateが呼ばれずにハマった時のメモです。 全体的なサンプルは Multitasking in iOS 7 - iOS 7 - objc.io issue #5 を参考に…

Android StudioからRobolectricのテストを直接実行する

Android Studio + Robolectricでは基本的にターミナルからGradleで実行する感じっぽいですが、これだとテスト結果が見づらいし全部のテストを毎回実行するのはムダだと思うでAndroid Studioから直接テストを実行できるようにしました。 注意点としては結構面…

AndroidStudio + Robolectric + Guardによる自動実行

JakeWharton/gradle-android-test-plugin がDEPRECATEDになってたのですが、いつの間にかrobolectric本家がfork(robolectric/gradle-android-test-plugin)してたので使い方をまとめおきます。 robolectric/deckard-gradle をシンプルにした感じです。 設定…

KVC Collection Operators が便利っぽい

Modernize your Objective-C // Speaker Deck のスライドを読んで初めて知ったので、調べてみたら便利そうだったのでそれのメモです 公式ドキュメント Key-Value Coding Programming Guide: Collection Operators 概要 コレクションのvalueForKeyPathメソッ…

iOS7のhidesBottomBarWhenPushedの挙動がおかしい

iOS

画面遷移した時にタブバーを非表示にしたかったので、 controller.hidesBottomBarWhenPushed = YES; ってやったんですけど、下のアニメgifみたいな感じになりました。 タブバーを非表示にするってことはできたんですが、遷移するときにNavigationbarの右側に…

Xcode BotでCocoaPodsを使う(あと、Botについてのメモ)

結論 PodsディレクトリをGit管理すれば良い。(Git管理しないでBot使う方法は不明) もしくは Botを使わずにJenkinsを使う。(一番おすすめ) Botについてのメモ ぼくはいつもPodsディレクトリをGit管理しない派なんですけど、これでBotを動かすことができま…

iTerm2をAppleScriptで操作する

Mac

AppleScriptはよく分からんですが、iTerm2のWikiでこんなのを見つけたので試してみました。 AppleScript - iterm2 - Development site for iTerm2 - Google Project Hosting AppleScriptとは AppleScript - Wikipedia を見てください。 正直、使いこむつもり…

ラブライブのGemつくった

もうすぐラブライブ二期が始まりますね〜。楽しみすぎて夜と昼しか寝れません。 二期が始まる前にラブライブに関する何かを作ろうと思って勉強のついでにGemを作りました。Macでしか動作確認してませんが… STAR-ZERO/pebbles-lovelive はじめに ぼくはそこま…

UnityのiOSでAppDelegateに処理を追加する

最近、UnityからiOSビルドについてばっかりやってます。Unity自体は分かりません。 UnityからiOSビルドした時にAppDelegateに処理を追加する方法です。 UnityAppController UnityからiOSビルドした時にUnityAppController.hとUnityAppController.mmが生成さ…

UnityのiOSビルド時にローカライズファイルを設定する

前回の続きです。 前回のやつのAssets/Editor/PostprocessBuildPlayerに追加します。(関係ある箇所だけ抜粋してます。) UnityのiOSビルド時にローカライズファイルを設定する Unity側ではローカライズファイルをAssets/Localizeに配置します。一旦Xcodeで…