歌舞伎座.tech#11「Swiftプログラミング勉強会」を視聴しました。

上記勉強会ををニコ生で視聴させて頂いたので、メモを残しておきます。 クリーンアーキテクチャしたい、クリーンアーキテクチャしたくない? メモ クリーンアーキテクチャ、メリットデメリットあるけど良かったよという話。 合わせて確認したいページ 初めて…

git の Discard all changes を復元する(取り消す)方法

git

最近はGitKrakenを使ってgit操作をしています。 GitKrakenにはcommit前の変更を全て取り消す Discard all changes という機能があります。 内部的にはgit checkoutを実行しているのでしょうか。 詳しく調べていませんが、GitKraken以外のGUIアプリでも実装さ…

Androidオールスターズ2に参加しました。

Androidオールスターズ2に参加したので、簡単なレポートとメモを残しておきます。 AndroidのCIを始めよう レポート AndroidのIDEがAndroid Studioになり、Gradleでビルドしている。 Gradleではビルドスクリプトが用意されている。 CIにはビルドスクリプトが…

Kotlin sealed class パターンマッチの挙動

sealed class を when でパターンマッチした際に、想定外の挙動をしていたのでいろいろ検証してみました。 網羅チェック 網羅チェックが動きそうで動かなかったケース ビルドエラーになりません。 sealed class Event { class Insert: Event() class Update:…

Kotlin + DataBinding + RecyclerView のサンプル。

標題のサンプルが見つからなかったので作りました。 github.com このコードを元に、第3回Kotlin勉強会 @ Sansan - connpassでLTしてきたのですが、 #Kotlin_Sansan enumならviewTypeはordinal で良いんじゃないかなと https://t.co/GXweUTSK7s— Satoru Fuji…

Android の Fragment で出来るを余白を消す

Androidアプリ開発でFragmentを使用した際に画面の上下左右に余白が出来てしまいました。 こちらのページに記載されている通り、 res/values/dimens.xml の設定を下記の通り変更することで余白が消えました。 <dimen name="activity_horizontal_margin">0dp</dimen> <dimen name="activity_vertical_margin">0dp</dimen> デフォルトでは 0dp のところに 16dp が…

Android の Minimum Required SDK / Target SDK / Compile With

Android ではSDKの指定がいろいろあり、それぞれについて紹介します。 Minimum Required SDK アプリがサポートする最低レベルのSDKを選択します。 ここで選択したバージョンより低いOSではアプリがインストールできません。 バージョンの選び方。バージョン…

KotlinのExtensionでDataBindingのBindingAdapterを使う。

本記事では DataBinding の方法については省略します。 DataBinding の方法については以下の記事を参照下さい。 KotlinでAndroid Data Bindingを使ってみた - Qiita BindingAdapterとは? カスタムセッターを定義するものです。 BindingAdapterアノテーショ…

Kotlinプロジェクト(Android Studio 2.1.1) に Crashlytics を導入

Kotlin で Crashlytics が正常動作検証した際に、build.gradleの修正に手間取ったのでメモしておきます。 手間取ったのはおそらく Kotlin が原因ではなく、 Android Studio の build.gradle の構成が変わってことが原因です。 build.gradle(Project) buildsc…

UITextFieldに単位をつける

ios

"UITextField 単位"でググるとこちらの記事がヒットしますが、rightViewMode = .Always にし、rightView に UILabel 設定すれば実現できそうです。 参考にしたサイト http://stackoverflow.com/questions/745453/add-label-to-uitextfield

関数型プログラミング入門のまとめ

fp

気になる連載があったのですが、Indexがなかったので勝手にまとめました。 関数型プログラミング入門(1) – まえがき | anopara 関数型プログラミング入門(2) – FPとは | anopara 関数型プログラミング入門(3) – 再帰関数 | anopara 関数型プログラミング入門…

PlaygroundでViewControllerを表示する。

Assistant Editors を開いて、下記のようなコードで表示できます。 import UIKit import XCPlayground let window = UIWindow(frame: CGRect(x: 0, y: 0, width: 300, height: 300)) let viewController = UIViewController() viewController.view.backgroun…

try! Swift 3日目個人まとめ

初めにまとめサイト紹介 スライドの写真もある速記まとめ(3日目だけのまとめはない) 全日程の資料まとめ クラスメソッドさんのまとめ 個人まとめ "Motivation based library abstraction" レポート 業務の中で出てきた課題に対応するための3つのライブラリを…

try! Swift 2日目個人まとめ

初めにまとめサイト紹介 スライドの写真もある速記まとめ 全日程の資料まとめ クラスメソッドさんのまとめ 個人まとめ "実践的 “Boundaries”" : "Boundaries in Practice" レポート BoundariesはFunctional Programingでよく参照される内容。 https://www.de…

try! Swift 1日目個人まとめ

初めにまとめサイト紹介 スライドの写真もある速記まとめ 全日程の資料まとめ クラスメソッドさんのまとめ 個人まとめ "Swiftのエコシステムに飛び込む" : "Dive into Swift Ecosystem" レポート エコシステムに貢献する段階 使う。 Git HubならStarを付ける…

gitで直前のcommitを取り消す

git

git reset --soft HEAD^

Vim勉強ノート

Vimチートシート http://www.namaraii.com/files/vim-cheatsheet.pdf 削除コマンド vimmer.blog5.fc2.com

iOS SystemFont サイズ毎のラベルの高さ。

デザインの指定で「高さはラベルいっぱいでお願いします。」とかあるので調べてみました。 結果 Font Size: 1, heihgt: 1.5 Font Size: 2, heihgt: 2.5 Font Size: 3, heihgt: 4.0 Font Size: 4, heihgt: 5.0 Font Size: 5, heihgt: 6.0 Font Size: 6, heihg…

SwiftのArrayを拡張してremoveメソッドを追加する。

SwiftのArrayには removeAll や removeAtIndex はありますが、removeしたい element を渡して remove するメソッドがありません。 そこで、removeメソッドを追加しました。参考にしたのはstackoverflowのこちらの記事です。 stackoverflow.com上記の記事で紹…

地方在住ITエンジニア(元・地方在住も可) Advent Calendar 2015 を一通り読んでみて。

将来的は地方で働きたいという思いがあるので、こちらのAdvent Calendarの全記事ざっと読みました。 記事の中で書かれている地方の特徴を簡単にまとめておこうと思います。www.adventar.org お金 家賃は安い。 家賃以外の生活費はあまり変わらない。 平均給…

Argo でnullの場合に空文字や配列を得る。

ArgoはSwiftでJSONのParse処理を簡潔に記載できるライブラリです。github.comちょっと古い記事ですが まだSwiftyJSONで消耗してるの? - Qiita でも紹介されています。ただ、今回のアプリでは以下の振る舞いの方が都合が良くメソッドを追加しました。 JSON …

国内のKotlin導入事例

最近Android開発界隈で話題のKotlinについて国内の導入状況をまとめてみます。 見つけ次第随時更新していく予定です。 会社 導入状況 参考サイト 記事投稿日 Qoncept がっつり導入 Android開発を受注したからKotlinをガッツリ使ってみたら最高だった - Qiita…

読んだ:iOS/Androidアプリの3つの大事な設計方針

こちらのスライドのまとめです。 Modelとそれ以外を分ける Modelとそれ以外(ここではEditor)に分ける。 ModelはUIに関わらない部分 EditorはUIに関わる部分 参照 OK:Editor -> Model の直接参照 NG:Model -> Editor の直接参照 ModelからEditorを参照する…

読んだ:軽量なView Controller(objc.io #1-1 日本語訳)

qiita.comViewControllerからロジックを分離する内容が書かれています。 protocol UITableViewDataSource もViewControllerから分離しよう。という提案がなるほどなと思いました。 他はMVCフレームワークとかで言われることと同じなので新鮮味は特にありませ…

Swiftで高さ0のConstratintインスタンスを作成する。

たまに使うのですが、毎回忘れてしまうので記載しておきます。 let zeroHeightConstraint = NSLayoutConstraint( item: self, // 対象のViewインスタンス attribute: .Height, relatedBy: .Equal, toItem: nil, attribute: .Height, multiplier: 1.0, consta…

iOS9でホームアイコンにバッチが表示されなくなった時の対応方法

検証OS: iOS 9 beta 5 Xcode: Xcode 7 beta 5 対応前 let types: UIUserNotificationType = [.Alert, .Sound] let settings: UIUserNotificationSettings = UIUserNotificationSettings(forTypes: types, categories: nil) UIApplication.sharedApplication(…

DDDの不吉な匂い

ddd

避けるべきDDDの10の失敗 www.infoq.comInfoQで10個上げられていたので抽出しておきます。 永続化やデータストレージがモデルに影響を与えてしまう ドメインエキスパートと交わらない ドメインエキスパートの言葉を無視する 境界付けられたコンテキストを特…

iOSアプリのgitブランチ運用

iOSアプリはApple審査期間がありリリーススパンがWebに比べて長くなってしまいます。 WebではGitHub Flowやgit-flowが使われているようですが、iOSアプリではgit-flowをアレンジした下記に示す運用が良いと思います。なお、この運用は2,3人での開発を想定し…

Swiftのバージョンを手軽に確認する方法。

いろんな情報が出てくるので一番手軽な方法をメモします。 ターミナルで下記コマンドを実行します。 swift -version 下記のように表示されます。私のバージョンは 1.1 でした。 $ swift -version Swift version 1.1 (swift-600.0.57.4) Target: x86_64-apple…

Windowsのコマンドプロンプト(cmd)で複数ファイルコピーバッチ

xcopyを使って下記コマンドで複数ファイルをコピーしようといします。 xcopy a.txt new_a.txt /R /Y xcopy b.txt new_b.txt /R /Yすると、下記メッセージが表示され入力待となってしまい、処理が止まってしまいます。 \(ファイル名) は受け側のファイル名で…