Skip to content

Instantly share code, notes, and snippets.

View yamazaki-sensei's full-sized avatar
🤔
thinking

hira yamazaki-sensei

🤔
thinking
View GitHub Profile
@yamazaki-sensei
yamazaki-sensei / AvoidRerender.swift
Last active December 7, 2018 17:49
ReSwiftを使うときに可能な限り再描画を避けたい話 ref: https://qiita.com/yamazaki_sensei/items/90a7c31f8f930a6c9986
import UIKit
protocol AvoidRerender: class {
associatedtype TargetState: Equatable
// この記事を書いている途中で、これがinternalなのはまずいことに気付いた。が、現状どうしようもない。
var state: TargetState? { get set }
func update(with state: TargetState?)
func customAction(state: TargetState?)
set PATH $HOME/.nodebrew/current/bin $PATH
function cd
if test (count $argv) -eq 0
builtin cd
return 0
else if test (count $argv) -gt 1
printf "%s\n" (_ "Too many args for cd command")
return 1
end
@yamazaki-sensei
yamazaki-sensei / build.yml
Last active August 28, 2017 15:34
ConcourseでGithubのprivateレポジトリをビルド & デプロイする話 ref: http://qiita.com/almichest/items/e6bd10af2657eb4648ea
resources:
- name: as_you_like
type: git
source:
uri: git@github.com:your/private-repository.git
branch: master
private_key: |
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAw0ej
(中略)
@yamazaki-sensei
yamazaki-sensei / file0.swift
Created May 3, 2017 16:20
がっつりiOSをやった人がAndroidに移るとListenerの実装でハマるかもしれない話 ref: http://qiita.com/almichest/items/efd3b2ca25939d05106d
import UIKit
// UI
class ViewController: UIViewController, ModelDelegate {
let model = Model()
override func viewDidLoad() {
super.viewDidLoad()
@yamazaki-sensei
yamazaki-sensei / file0.h
Last active February 21, 2017 08:54
ちゃんとNS_ENUMを使おう、という話 ref: http://qiita.com/almichest/items/9ce71a55023027e12a0a
#import <Foundation/Foundation.h>
typedef enum : NSInteger {
EnumHogeType1,
EnumHogeType2,
} EnumHoge;
typedef NS_ENUM(NSInteger, EnumFuga) {
EnumFugaType1,
EnumFugaType2
@yamazaki-sensei
yamazaki-sensei / file0.swift
Last active December 17, 2016 16:47
Swiftのsortが、要素数が増えると安定ではなくなる話 ref: http://qiita.com/almichest/items/ca0d9fdbb4692c0358b9
typealias Pair = (Int, Int)
// 要素数21個の場合
let array1 = (0 ... 20).map { i in
Pair(i / 5, i)
}
// tupleの2つめの要素でsortしてから
let sorted1 = array1.sorted { (p1, p2) in
@yamazaki-sensei
yamazaki-sensei / ViewController.swift
Last active August 12, 2017 08:28
iOSのMKMapViewで、GoogleMap的なダブルタップ → 上下スライド でのズームイン・アウトとダブルタップでのズームを共存させる ref: http://qiita.com/almichest/items/fb792a5a157d4b5956f1
import MapKit
class ViewController: UIViewController {
/* ドラッグの位置記憶用の変数 */
var dragPoint: CGPoint?
var mapView: MKMapView!
override func viewDidLoad() {
@yamazaki-sensei
yamazaki-sensei / ViewController.swift
Created May 6, 2016 02:42
UIKeyboardDidShowNotificationが上がってきているのにキーボードが開かないことがある話 ref: http://qiita.com/almichest/items/ebb313822086e5e5ad2c
import UIKit
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let textField = UITextField(frame: CGRect(x: 100, y: 100, width: 50, height: 30))
textField.backgroundColor = UIColor.redColor()
view.addSubview(textField)
@yamazaki-sensei
yamazaki-sensei / Test.swift
Last active August 12, 2016 08:40
Swifterを使ってTwitterにDictionary<String, String>をそのまま投稿しようとすると401が返ってくる ref: http://qiita.com/almichest/items/60c5e455a478304ddc24
class Test: NSObject {
func test() {
let swifter = Swifter(consumerKey: TWITTER_CONSUMER_KEY, consumerSecret: TWITTER_CONSUMER_SECRET, oauthToken: TWITTER_ACCESS_TOKEN, oauthTokenSecret: TWITTER_ACCESS_TOKEN_SECRET)
let dictionary = ["hoge" : "fuga"]
let string = dictionary.description
swifter.postStatusUpdate(string, success: { status in
}, failure: { error in
print(error)
})
}
@yamazaki-sensei
yamazaki-sensei / file0.swift
Last active August 29, 2015 14:19
Swift1.2 で追加されたSet<T> を使ってみた。 ref: http://qiita.com/almichest/items/e3e2ebcbbc5e3c167dbc
var oldSet = NSSet(array: ["oldValue1", "oldValue2"])
var oldValue1: String
oldValue1 = oldSet.anyObject() as! String //キャストが必要
var newSet = Set<String>(arrayLiteral: "newValue1", "newValue2")
var newValue1: String
newValue1 = newSet.first! // キャスト不要