Skip to content

Instantly share code, notes, and snippets.

View kaiinui's full-sized avatar

kaiinui kaiinui

View GitHub Profile
@kaiinui
kaiinui / v.swift
Created June 18, 2014 07:33
Infinite Scroll with UICollectionView in Swift
import UIKit
class ViewController: UICollectionViewController, UICollectionViewDataSource, UICollectionViewDelegate {
override func collectionView(collectionView: UICollectionView!, numberOfItemsInSection section: Int) -> Int {
...
}
override func collectionView(collectionView: UICollectionView!, cellForItemAtIndexPath indexPath: NSIndexPath!) -> UICollectionViewCell! {
...
}
@kaiinui
kaiinui / appengine.md
Last active November 10, 2017 02:31
AppEngine の BlobStore の createUploadUrl() と getServingUrl()
  1. BlobStoreService#createUploadUrl(String) でアップロード用の URL が作られる
  • URL は https://{id}.appspot.com/_ah/upload/XXXXXXX みたいな
  • multipart/form-data でバイナリを送る。キーは自由だしいくつも送ってもいい。
  • AppEngine は、リクエストがインスタンスに来る前に全てのバイナリを BlobStore にため、バイナリを除いたリクエストを createUploadUrl(String) に渡した URL にフォワードする(インスタンスに負荷無い)
  • フォワードされたリクエストからは、getUploads() で Map が取得出来る。Map のキーはマルチパートのキーであり、値は BlobKey である
    • フォワード先のレスポンスをクライアントにそのまま返す。(Status, Body, Header)
    • 400 番台とかだと失敗してるはずだが別にリトライして叩いたりはしない。
  • アップロードセッションはそのうち切れる。多分10分くらい。 400 Bad Request となる。
  • 同じアップロード URL で何回でもアップロードでき、ファイルも上書きされる事は無い。
  • でも、ローカルだと何故か出来ない。(404 Session Not Found となる)
@kaiinui
kaiinui / cloudflow.rb
Last active March 17, 2017 19:03
CloudFlow Specification
#
# Amazon SQS Powered Multi-instance Coding (a.k.a. Workflow) & Docker powered multi-instance deployment. (Cloud Orchestration)
# similar works: Route https://github.com/jmettraux/ruote
#
# Deployment
# Deploy docker containers for each func. define their role with ENV
# TODO: how to define number of containers?
#
# flow use cloudflow.rb # => define which flow to control
@kaiinui
kaiinui / NSURLSession の挙動.md
Last active March 7, 2017 04:38
NSURLSession の挙動

語彙

  • NSURLSession: OS の NSURLSession Daemon とのコネクションを管理するインスタンス。大体アプリにつき一つ。Singleton で OK. Delegate はこいつに紐づく。
  • NSURLSessionTask: 「リクエスト一つ」に対応。ただし OS 直属の NSURLSession Daemon に管理が委ねられる。

動き

  1. NSURLSession を初期化
@kaiinui
kaiinui / eventbus.md
Last active March 3, 2017 03:54
Android開発いろいろ

EventBus

EventBus は必ず onStart()onStop() で呼ぶ。バックグラウンドで色々動かれて困る。 また、onStop() では super.onStop() よりも 先に 呼ぶ。

@Override
protected void onStart() {
 super.onStart();
@kaiinui
kaiinui / FLMHTTPStub.h
Last active February 10, 2016 03:07
ObjC便利HTTPスタブクラス
#import <Foundation/Foundation.h>
@interface FLMHTTPStub : NSObject
+ (void)stubURLContains:(nonnull NSString *)aStr withJSON:(nonnull NSDictionary *)json;
+ (void)stubURLContains:(nonnull NSString *)aStr withHttpStatusCode:(int)code withJSON:(nullable NSDictionary *)json;
@end
@kaiinui
kaiinui / CIDCloudKeyManager.h
Last active February 7, 2016 10:25
CIDCloudKeyManager
#import <Foundation/Foundation.h>
@interface CIDCloudKeyManager : NSObject
+ (instancetype)sharedManager;
- (void)startFetchingWithContainerIdentifier:(NSString *)identifier
storingCloudKeyBlock:(void(^)(NSString *cloudKeyID, NSString *cloudKeySecret))storingCloudKeyBlock
paringCloudKeyBlock:(void(^)(NSString *cloudKeyID, NSString *cloudKeySecret))paringCloudKeyBlock;
@end
@kaiinui
kaiinui / ローカル通知の仕様
Created June 26, 2015 09:10
ローカル通知のしよう
http://qiita.com/caesar_cat/items/08018ab22bea27b55443
https://developer.apple.com/library/ios/documentation/iPhone/Reference/UILocalNotification_Class/#//apple_ref/occ/instp/UILocalNotification/alertBody
http://ios-practice.readthedocs.org/en/latest/docs/notification/
iOS8 以上は、ローカル通知の設定にパーミッションが必要
「何分後に通知」ということができる
Background Fetch のハンドラーから呼べる
音がある通知と、音のない通知を選べる
タイトル、本文、アクション(スライドしてxxx)を設定できる
@kaiinui
kaiinui / まとめ.md
Created June 24, 2015 08:14
Dropbox の「無料容量」まとめ

@kaiinui
kaiinui / build.gradle
Created April 30, 2015 17:25
Maven 対応プロジェクトにするためにとりあえず書いとくべき gradle
apply plugin: 'maven'
task sourcesJar(type: Jar, dependsOn:classes) {
classifier = 'sources'
from sourceSets.main.allSource
}
task javadocJar(type: Jar, dependsOn:javadoc) {
classifier = 'javadoc'
from javadoc.destinationDir