Skip to content

Instantly share code, notes, and snippets.

View sahara-ooga's full-sized avatar

Yuu Ogasawara sahara-ooga

View GitHub Profile
@sahara-ooga
sahara-ooga / Storyboadable.swift
Created May 20, 2018 04:17
「モバイルアプリ開発エキスパート養成読本」より「タイプセーフでモダンなiOSアプリの設計」
/*
任意のUIViewControllerのサブクラスに対して、Storyboardableを適応することによって、
Storyboardから該当のUIViewControllerの型でインスタンスを取得できるようになります。
*/
extension NSObjectProtocol {
static var className: String {
return String(describing: self)
}
}
protocol Storyboardable: NSObjectProtocol {
@sahara-ooga
sahara-ooga / unittest_plan.md
Last active June 2, 2018 08:20
テスト設計
  • 静的解析ツール → 今回でいうとSwiftlint

  • 開発とテストの連携では、第一に「プロジェクト全体でどのような品質を確保すべきか」の品質要求の分析が重要

  • またアーキテクチャレベルで品質要求を分割し、別々に分析可能にするアプローチも品質要求の全体を扱う工夫として有効です。例えば課金システムや個人情報管理などハイリスクな責務のインフラとローリスクのサービスを設計で分離して、各品質確保の厚みや方針を別々に考えられるようにする

  • スクリプトテストと探索的テスト

  • 要件と課題

  • 「本当に必要なテストを行えているか」を担保する手段

    • 同値分割/境界値分析
    • ドメイン分析
    • 組み合わせテスト
@sahara-ooga
sahara-ooga / CaseIterable.md
Last active June 17, 2018 04:14
WWDC2018キャッチアップ

CaseIterableプロトコルが登場。 allCasesプロパティで、その型の全値をSequenceで返す。 例えばenumの全区分値を列挙できるようになった。 (What` new in Swiftより)

enum Gait: CaseIterable {
    case walk
    case trot
    case canter
@sahara-ooga
sahara-ooga / swift_library_using_c.md
Created September 30, 2018 15:50
Cのコードを含むSwiftのライブラリを、Carthageで公開する

C言語で作成されたライブラリを、Swiftでラッパーを書き、Carthageでライブラリとして提供するための試行錯誤の記録になります。

@sahara-ooga
sahara-ooga / export_in_one_line_command.md
Last active November 25, 2018 01:04
export path in one line command

example

add ~/.local/bin to the last line in ~/.bash_profile

$ echo export PATH=$PATH:~/.local/bin >> ~/.bash_profile
@sahara-ooga
sahara-ooga / vscode_keyboard_shortcut.md
Last active April 8, 2020 12:47
Visual Studio Code Keyboard Shortcut

Editor/Window Management

goal keyboard shortcut
Move Editor into Next Group ⌃ ⌘ →
Move Editor into Previous Group ⌃ ⌘ ←

selection

|goal|keyboard shortcut|

@sahara-ooga
sahara-ooga / CGSize+Inversed.swift
Created January 6, 2019 05:23 — forked from kazuhiro4949/MyViewController.swift
UICollectionViewController including type erased delegate
import UIKit
extension CGSize {
var inversed: CGSize {
return CGSize(width: self.height, height: self.width)
}
}
@sahara-ooga
sahara-ooga / randomString.swift
Created April 30, 2019 08:33
Generate Random String
/*
generate random string.
possibly contained letters are:
- lower case alphabet
- upper case alphabet
- number
todo:
- pass letter kind or letter set
@sahara-ooga
sahara-ooga / rake.md
Last active June 10, 2019 11:13
Rake memo

Rakeとは

Rakeは、MakeをRubyで実装したものを超越したビルドツールである。 世間では、ビルドツールというとMakeやApache Antが有名で、よく使われている。 Rakeは、これらのいいとこ取りをした上で、特有のフィーチャーを追加した新しいビルドツールであり、複雑なビルドを柔軟に書きこなすことができる。その秘密は内部DSLという仕組みにあり、このおかげでビルドの記述にRubyの強力な文法をそのまま使うことができる。この自由度の高さは、ビルドの記述に独自の言語の使用を選択したMakeとAntには無い強みだ。 その代わりと言ってはなんだが、Rubyにある程度習熟していないと扱えないツールである。

http://www2s.biglobe.ne.jp/~idesaku/sss/tech/rake/

Example