2016-01 ハイライト
要約: 走った
- 84km
- 16 run
- 週3-4ぐらいの頻度
- 1回あたり6kmがメイン
評価
- [◎] Running => 目標値の2倍達成
- [✕] 英語 => Chatty 1回
- [△] 腹筋 => 9/31回
- [◯] リリース => Autum
- [△] 寝る時間 => 就寝は早くなったが9時縛りはきつい
- [✕] 金 => 特別出費がいたい。
AndroidでKotlin勉強会 で発表しました
100 lines or dieという内容で発表しました。
目標: 2016
スローガン
- 気力とアクティビティを高いまま維持する
- 生活習慣をガラリと変えたい
体
- ランニング 40km / 月. 週2ペースで走る
- 腹筋 20回 / 日 を継続 (少しづつ増やす)
- 腕立て 20回 / 日 を継続 (少しづつ増やす)
- 年末までに体脂肪率10%, 55k
英語
- rarejob初めてみる.
- 週1ペースでつづける
- 楽しく会話できるくらいにしたい
習慣
- 原則9時以降は食事しない. お菓子禁止
- 10時以降は刺激物禁止. (ゲーム, アニメ, プログラミング...)
- 読書のみ許す
- 刺激物をやりたければ、朝するようにする
本
- 読書記録をとる
- 漫画、小説、真面目本問わず
リリース
- 月1ペースを目指す
- ゲーム, ライブラリ, アプリ, ... 問わず
- その時に興味のあるものを
金
- +5万 / 月
ふりかえり
- 各項目で記録する
- 月1ペースでブログに残す
エンジニアでも作曲したい
前置き
ゲームジャムでゲームを作るときに作曲できると便利。 面倒な著作権問題やら回避できて、自由にアレンジや改変もし放題。
lycoris102さんと ayaki さんにいろいろ教えてもらって作曲はじめた。 自分で作った曲はいろいろとおかしいのだけど(自覚している)、まあ最近始めた初心者なので許してという感じ。
ツール
作曲に利用したツール。 DAW (Digital Audio Workstation) というらしい。
FL Studio
定番ソフトらしい。mac版はbetaでリリースされていて、プロジェクトの読み出しができないもののちょっとした曲を作る分には十分。 こんな曲をつくった。
GarageBand
Mac標準の作曲ツール。 いままではなんか邪魔なアプリが入ってるなー程度の認識だったのだけど、使ってみるとDAWとして初心者には十分な機能が入っている。 ドラムも良い感じに自動で鳴らしてくれるのですごい便利。 チュートリアルも充実してて、そもそも作曲とは?コードとは?みたいな人にもオススメ。
CMD + クリックでピアノロールに追加できるってことだけわかりにくいが、あとはなんとなく慣れでいける。 追加DLが多いのがたまにキズ。
これで作った曲。
GarageBand (iPhone)
モバイルでも作曲できるのだ。 しかもちょっとした打ち込みならこっちのほうがやりやすいくらい。 デフォルトのオートプレイや、スマートドラムもかなり便利。
少しわかりにくいのだけど、AirDrop やら Dropbox経由でPCに .bandファイルをシェアできる。
試しに作った曲。(ただのオートプレイの組合せ)
勉強したサイト
ドラムロールは適当に打ち込んでもリズムになりやすいのだけど、 ピアノロールには打ち込んでも、それっぽい曲に一向にならない。 ので少し勉強した。
YAMAHA コードについて学ぶ
コードについて学ぶ - 音楽について勉強しよう - ヤマハ株式会社
和音の作り方、7th chordあたりが勉強になる。
サビ、メロについて
そもそもサビの意味すらしらなかった・・・
Timさんの音楽教室
GarageBandを開くと標準でついてくるレッスン。 コードの基礎的な説明や楽器の使い方など、誰でもわかるようにかなり丁寧に説明している。 当たり前だけど楽器に会う演奏スタイルやコード進行があって、基礎を学ぶとそういうことを気づかせてくれる。
作曲の難しさ
いまは作れる曲を作るという場当たり的適当さで作っている。 狙った曲でその雰囲気を表現するのはやっぱり難しい。
副作用
自分で作曲をしてみると、世に流れている曲でどんな楽器で演奏しているのか? どんなコード進行をつかってるのか?だいたいドラムロールつかってるなーとか、雰囲気だけをだすなら複雑なメロディはいらないなーとか。 今まで見過ごしていたものへの気付きがある。
当たり前だけど世の中には曲があふれていて、何気ないアニメの一シーン (終物語やらごちうさの劇中歌とか、SEとか)にも耳が反応するようになった。 このパターンを蓄積して、どんな楽器をつかえばいい?こんなパターンがあるんだってのを積み上げてみんなうまくなるんだろうなーと (小並感
2015年においては、ツールも豊富で無料で作曲をはじめられるので良い時代だ。 曲作りは楽しいし、1日くらいで1曲できる手軽さなのでゲームジャムエンジニアにはおすすめです。
GameJam#6での学び
WIP. 社内でゲームジャムをやっていた時の学びメモ
Resources.Load()
digit.sprite = Resources.Load<Sprite("Sprites/digit/" + value);
みたいなのよくやる. as Spriteとか前はやってた。
ReactiveProperty
public LongReactiveProperty score = new LongReactiveProperty(); void Start() { score.subscribe(value => { SetScore(value); }); }
みたいな感じで値監視がすごい便利。スコアとかこれだけで出来る。
ProjectのBootstrap
毎回同じセットアップとか、同じロジックを書いてる気がする。 コーディングの半分くらいは無駄にしている感。 小分けにして、Utilityとしてまとめたい。UnityのBootstrapつくりたい。
Fabric
FabricBetaでデータを共有したかったが、Unityから書き出すと毎回データが書き換わる。 しかもFabricは導入がたるい。DeployGateのようにアップロード機能だけ切り出して欲しい。 Fabricの導入対応を血迷って初めにやってしまったのはミス。4時間くらい不毛に潰してしまった。
書き出し
Unityの書き出しはちょくちょくミスる。 これで作業時間がその都度15分くらい消耗されるのはツライ。 jenkinsとかで裏で書き出す仕組みが欲しいところ。 UnityのCloud Build試してみたい
またiOSのビルドもかなり待つ。
gh-pages
GithubPagesはゲームを手軽に共有するのに便利だ。 ただブランチ切り替えの前にきちんと物理コピーを取ることをおすすめする。 マックのクリップボードコピーは参照先だけ保持しているので、ブランチ切り替えでデータが消えて時間を浪費する。
機能をすてるということ
たとえば、ステージをロードするということはそれなりにロードする仕組みが必要だ。 現状の手持ちで間に合うかどうか、どのくらい時間がかかるか。それによってどのような影響があるか。 きちんと考えて必要な物を絞るのは大事だ。
Kotlin メモ1
open
継承元のクラスに引数を渡すとき、classにopen annotationをつける。
constructorの引数
public class Entity(name : String)
と
public class Entity(val name: String)
の違い。
valがつくと継承元のClassに引き渡せない。 valをつけると自動でクラス内のpropertyとしてmappingしてくれる。
returns label
foreachなどでreturnsするときに、ラベルをつかうみたい。
potatotips #19 いってきた
ただのメモ
Potatochips #19
@gfx
- RxAndroidの先行きが不透明
- RxJavaユーティリティを突っ込みたい
AndroidSchedulers
- RxAndroidと同じ
Schedulers
- ベストプラクティスあんまりわかんない
- とりあえずthread2つでよさそう
AndroidCompositeSubscription
- 同じinstanceをfinalで持ってる. 再利用可能
OperatorFilterLite
- もうすこし軽く. objectを作り過ぎないようにしたい
RxAndroid/RxBindingの動向をみまもりたい
@yuseinishiyama
静的にもっと書きたい話
UIViewController
- 例えばStoryboardとのヒモ付け、同じ情報を何箇所にも書かないといけない
- 1Storyboard / 1ViewControllerがオススメ
- global funcでstoryboard instantiateする関数
型名の抽出
- 一般的な方法、nest classには使えない
- mirror typeつかう
- swift 2.0では selfのdescritionでおk
IndexPath
UITableCell
- class name == nib == class identifier
@futaboo
push通知周り
GCM
- registoration idを保存
- 送信
注意
- 再起動するとregistration idが変わることがある
RECEIVE_BOOT_COMPLETED
- GooglePlayの自動アップデートが効かなくなるのが問題
GCM診断
- idを入力すると過去に届いたかどうか、その一覧がでる
問題
- Dozeモード
- 省電力
@kitasuke
- fastlane meetupにいったよ
- 日本語ガイドに紹介されてうれしい
- Clipper = suika
- Meetupいくといいよ
メソッドを外部から叩く技
- c88 tech boosterに寄稿したよ
- Method Http Exporter: つくったよ
- 開発用のバックドア
仕組み
- アノテーションを付けておく
- aptで解析
デバック
- センサ系の操作に便利ですよ
Core Graphics
- @shu22
watchOS2
- 線、UIBezierPath、円、gradationのかける
- 手書きできない
JS native間のmessage
htlm5 web messaging
- 送信用ポート、受信用ポート
mWebView.postMessage()
html5標準なのでよさそう
- いまはpreview 段階. M Preview
New Library for CoreData
- Hiroshi Kimura
新しいデータストアライブラリつくってる
- CoreStore
よいところ
- swift
- thread管理
- mainthreadはread only / 書き込みはbackground
- sqlite fileが複数使用可能. configでわけられる
- sqlが結構シンプルに書ける
- fetchの記述がシンプル
- VCとの連携が簡単
- migrationが充実
swift2.0対応中
はじめよう Data Binding
- @sys1yagi
Android開発の課題
- View周りが煩雑
View Binding
- RoboGuice / ButterKnife
- 助かるんだけど、全然足りない
Google IO Data Binding Library
- com.android.databinding:dataBinder:1.0-rc0
- minSdkVersion 2.1-
Layout XMLの記法を拡張してくれる
- root要素にlayout書くだけ
- compileの時にコードを吐いてくれる
- view with idsでview holder
- automatic setter
- observable...
View With IDs
ViewHolderいらずに・・・
layout書くとViewHolderが出来上がる
実際に試すと超楽しい
- ViewHolderの代わりにくらいからやると良さそう
夏コミ
- c88でデータバインディングライブラリについて結構書いてる
Cookpadではすでにリリース済み
iOSの画面遷移と私
@tokorom
紀元前: Storyboard登場まえ
- 紀元後: Storyboard登場
self.presentViewControllerでやる
storyboard時代の遷移
- prepareForSegue
- 超嫌だ
watch kitの contextがよい
- 疎結合 anyobject
- 遷移後・遷移前で依存関係ができてない
- interfaceで何でも渡せる
ライブラリつくった
- SegueContext
NavigationController/TabController挟んでもへっちゃら
Breaking changes for Foundation API in iOS9
- @kishikawa
- Relm
- meetup T-shirtくばるよ
NSMutableDictionary
- (void)setObject:(nullable ObjetType)obj forKeyedSubscript:(KeyType <NSCopying>)key
破壊的な変更なので要注意
- nilを渡すと要素が削除される => xcode7
- xcode6.x時代は NSInvalidArgumentException
GCM Topic Message
- @mochicon
- KAYAC inc
- Lobi
- C88 東A-39a
GCM Topic Messagin
- グループユーザに送信
- Topicに登録した100万件までに送信
- ニュース配信とかに使える
GCMのGoogle APIsの利用方法が変わった
新しい方式
- app/直下にconfigファイルをおいておくと、勝手にpluginがidを生成してくれる
UTI
- hatena
extension / mime / uti
UTI
- Uniform Type Identifier
mime type -> extensionを作れる
- ライブラリある
UTI(mimetype: "image/jpeg").extension
DeepLinkDispatch
- wasabeef
- CA
- ameba tv
DeepLinkDispatch
- airbnb
- deeplink schema 起動が楽
- simple
- anotation base
Activity
@DeepLinks({"wasabeef://deeplink/{id}"})
public class MainActivity extends Activity {}
- Bundleにidが入ってる
Method Annotationも使える
- static, returnでintent
ApplicationにDeepLinkCallbackをimplementするとエラーがくる
Test
adb shell am start -W -a android.intent.action.View -d "wasabeef://"
iPad Multi Tasking
- @mpon
- 参加レポートを1日づつかいた
Picture in Picture
- 動画を再生しつつ操作できる
- Youtubeとか
Slide Drawer
- 引っ張ってくとSplitViewになる
- Device Orientationを全部対応すればできる
iPadアプリ
Flow, Mortar, Dagger2 Tips
- @tai2
Fragmentのライフライクル問題
- IllegalStateException
Flow
- View主体の画面遷移、データはコンストラクタに渡して遷移すればOK
Mortar
- getSystemServiceを拡張
- Viewの永続化がBundleでできる
Dagger2
画面ごとにObjectGraphを作る
- @WithComponent、画面に対応するobject graphを指定する
サンプル作った
- github.com/tai2/flowmortardagger2demo
CookPadはRoboGuice使ってる
Teitenってアプリをつくった
- @nakajijapan
- pepabo
- NKJxxx をたくさん作ってるよ
teiten
- 自分を10秒毎に撮り続けるアプリ
- osxあぷり
previewをdrag&drop -> LGTMできるようにしたい
- NSTableView -> drag&dropに必要
- NSDragOperation
- NSPasteboardWriting
github / qiitaでclipboardにcopy&pasteできるのいいよね
APT
- @izumin5210
Annotation Processing Tool
- aptはjava7でdeprecated
- もとはコマンド
- Pluggable Annotaion Processing API
構成
javacのための入り口
- autoservice
あがめよう
- JavaPoetで生成するとよい
- testはGoogleのCompile Testingをつかうとよい
小並感
- cookpad 良いオフィスだ
- dataBinderおもしろそう、導入しようか
- DeepLinkDispatchもよさそう