Skip to content

Instantly share code, notes, and snippets.

View syou007's full-sized avatar

atsushi ichikawa syou007

View GitHub Profile
@syou007
syou007 / file0.swift
Created June 7, 2017 07:05
長押しでコピー可能なUIButton ref: http://qiita.com/syou007/items/d0d97e5d9d70a85f33db
import UIKit
// コピーメニューが表示されるUIButton
class UIButtonWithCopyMenu: UIButton {
override func awakeFromNib() {
// 長押し処理を追加
self.addGestureRecognizer(UILongPressGestureRecognizer(target: self, action: #selector(UIButtonWithCopyMenu.showContextMenu(_:))))
}
@syou007
syou007 / file0.txt
Created May 19, 2017 01:58
[2017年版]RxSwift + Alamofire + ObjectMapper + RealmのSwift実装について ref: http://qiita.com/syou007/items/8f27e7f0d03b9cfcff6c
github "ReactiveX/RxSwift"
github "realm/realm-cocoa"
github "Alamofire/Alamofire" ~> 4.4
github "Alamofire/AlamofireImage" ~> 3.1
github "Hearst-DD/ObjectMapper" ~> 2.2
github "tristanhimmelman/AlamofireObjectMapper" ~> 4.0
@syou007
syou007 / file0.swift
Created May 16, 2017 14:10
SwiftでSwiftyUserDefaultsに色々なデータを入れる。 ref: http://qiita.com/syou007/items/0fa4807862e6df9ff893
class Archiver: NSObject {
// 指定のデータをアーカイブします。
static func encrypt(rootObject: Any) -> Data {
return NSKeyedArchiver.archivedData(withRootObject: rootObject)
}
// アーカイブデータを解凍して返します。
static func decrypt<T>(data:Data) -> T? {
return NSKeyedUnarchiver.unarchiveObject(with: data) as? T
}
@syou007
syou007 / API.swift
Created April 24, 2017 09:43
SwiftでAPIリクエストを発行する。 ref: http://qiita.com/syou007/items/566a62ee5eaa96f5a2d3
import UIKit
import Alamofire
import RxSwift
import ObjectMapper
import AlamofireObjectMapper
// Routerを実装してAPIを作成ます。
public protocol Router {
// URLを返却
func url() -> String
@syou007
syou007 / file0.swift
Created April 11, 2017 08:13
カスタムViewをNibから初期化の最新版 ref: http://qiita.com/syou007/items/a75519195a8d9ff05093
class UINibView: UIView {
// コードから初期化はここから
override init(frame: CGRect) {
super.init(frame: frame)
comminInit()
}
// Storyboard/xib から初期化はここから
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
@syou007
syou007 / file0.swift
Created April 5, 2017 09:05
RealmのIDを自動採番(オートインクリメント)する方法 ref: http://qiita.com/syou007/items/267612c402fdd28de7a8
class RObject: Object {
// ID
dynamic var id = 0
// データを保存。
func save() {
let realm = try! Realm()
if realm.isInWriteTransaction {
if self.id == 0 { self.id = self.createNewId() }
realm.add(self, update: true)
@syou007
syou007 / file0.swift
Created November 29, 2016 13:57
Swiftでplistへアクセスする便利クラスを作った。 ref: http://qiita.com/syou007/items/2a7e09e018ef3eaf3e2f
class Plist {
private var plist:NSMutableDictionary
init(name:String) {
let filePath = Bundle.main.path(forResource: name, ofType: nil)!
let plist = NSMutableDictionary(contentsOfFile: filePath)!
self.plist = plist
}
@syou007
syou007 / CCBLocalizationManager.m
Last active February 27, 2017 19:11
SwiftでOpenGLを使ったゲームを作成する方法 ref: http://qiita.com/syou007/items/794cc681da5c82e44101
- (void) loadStringsFile:(NSString*) file
{
// Load default localization dictionary
NSString* path = [[CCFileUtils sharedFileUtils] fullPathForFilename:file];
// Load strings file
NSDictionary* ser = [NSDictionary dictionaryWithContentsOfFile:path];
// Check that format of file is correct
NSAssert([[ser objectForKey:@"fileType"] isEqualToString:@"SpriteBuilderTranslations"], @"Invalid file format for SpriteBuilder localizations");
@syou007
syou007 / file0.swift
Last active October 10, 2016 16:08
Swift3で課金処理を行った。 ref: http://qiita.com/syou007/items/1589f54ea96d5872b4ff
// 表示したい製品IDを事前に渡しておきます。
StoreKitAccessor.instance.cacheProducts(productIdentifiers: ["製品IDa", "製品IDb"])
@syou007
syou007 / ImageUploader
Last active September 29, 2017 08:09
Rails、carrierwaveの使い方。インストール方法 ref: http://qiita.com/syou007/items/98842179e83c03e5f882
process :fix_rotate
# 画像の向きを調整する。
def fix_rotate
manipulate! do |img|
img = img.auto_orient
img = yield(img) if block_given?
img
end
end