Skip to content

Instantly share code, notes, and snippets.

View devxoul's full-sized avatar
๐Ÿ‘จโ€๐Ÿ’ป
Always coding

Jeon Suyeol devxoul

๐Ÿ‘จโ€๐Ÿ’ป
Always coding
View GitHub Profile
func centralManager(central: CBCentralManager,
didDiscoverPeripheral peripheral: CBPeripheral,
advertisementData: [String : AnyObject],
RSSI: NSNumber) {
guard let packet = advertisementData[CBAdvertisementDataLocalNameKey] as? String else {
return
}
let version = Int(packet[packet.startIndex..<packet.startIndex.advancedBy(2)])
let channel = Int(packet[packet.startIndex.advancedBy(2)..<packet.startIndex.advancedBy(4)])
let cardRawValue = Int(packet[packet.startIndex.advancedBy(4)..<packet.startIndex.advancedBy(6)], radix: 16)
self.peripheral.startAdvertising([
CBAdvertisementDataLocalNameKey: "0001FE์ „์ˆ˜์—ด",
CBAdvertisementDataServiceUUIDsKey: [serviceUUID],
])
public enum Card: Int {
case Zero = 0
case Half = 127
case One = 1
case Two = 2
case Three = 3
case Five = 5
case Eight = 8
case Thirteen = 13
case Twenty = 20
import CoreBluetooth
let serviceUUID = CBUUID(string: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
let service = CBMutableService(type: serviceUUID, primary: true)
/// 1. `CBCentralManager`๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ ,
self.central = CBCentralManager(delegate: self, queue: nil)
/// 2. ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ํŠน์ • UUID๋ฅผ ๊ฐ€์ง„ ์„œ๋น„์Šค๋ฅผ ์Šค์บ”ํ•ฉ๋‹ˆ๋‹ค.
func centralManagerDidUpdateState(central: CBCentralManager) {
@devxoul
devxoul / Peripheral.swift
Last active January 16, 2020 01:13
Estimator: BLE๋ฅผ ์‚ฌ์šฉํ•œ Planning Pokerย ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜
import CoreBluetooth
let serviceUUID = CBUUID(string: "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX")
let service = CBMutableService(type: serviceUUID, primary: true)
/// 1. `CBPeripheralManager`๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๊ณ ,
self.peripheral = CBPeripheralManager(delegate: self, queue: nil)
/// 2. ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๊ฐ€ ๋˜๋ฉด ํŠน์ • UUID๋ฅผ ๊ฐ€์ง„ ์„œ๋น„์Šค๋ฅผ ์ถ”๊ฐ€ํ•œ ๋’ค์—
func peripheralManagerDidUpdateState(peripheral: CBPeripheralManager) {
@devxoul
devxoul / ReactorKit+Plugin.swift
Created December 22, 2017 10:10
Self triggering mutation concept
extension Reactor {
public func plugin<PluginReactor>(
keyPath: KeyPath<State, PluginReactor?>,
mutation mutationFactory: @escaping (PluginReactor) -> Mutation
) -> Observable<Mutation> where PluginReactor: Reactor {
return self.stateDidCreate.flatMapLatest { [weak self] () -> Observable<Mutation> in
guard let `self` = self else { return .empty() }
return self.state.flatMapLatest { state -> Observable<Mutation> in
guard let pluginReactor = state[keyPath: keyPath] else { return .empty() }
let pluginStates = Observable.merge(pluginReactor.state.skip(1))
@devxoul
devxoul / test_get_collection.py
Last active August 9, 2017 06:20
Flask API ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์œ„ํ•œ ์•„์ด๋””์–ด
# ์‹ค์ œ API
def get_collections(serializer):
collections = orm.foo()
paging = orm.bar()
return serializer.serialize(items=collections, paging=paging)
# ํ…Œ์ŠคํŠธ
def test_serializer_get_collections():
collections = fixture_collections()
paging = fixture_paging()
extension ObservableType where E: Any {
func map<T: ImmutableMappable>(_ mappableType: T.Type) -> Observable<T> {
return self
.map { try Mapper<T>().map(JSONObject: $0) }
.do(onError: { error in
if error is MapError {
log.error(error)
}
})
}
@devxoul
devxoul / fastcampus-ios-examples.swift
Created May 23, 2017 16:58
ํŒจ์ŠคํŠธ์บ ํผ์Šค iOS ํ”„๋กœ์ ํŠธ ์บ ํ”„ - ๊ต์žฌ์— ์—†๋Š” Swift ์˜ˆ์‹œ
//
// ๋ฐฐ์—ด๊ณผ ํด๋กœ์ € ํ™œ์šฉ
//
[1, 3, 6, 2, 7, 9]
.filter { $0 % 2 == 0 } // ์ง์ˆ˜ ํ•„ํ„ฐ๋ง
.map { $0 * 2 } // ๋ชจ๋“  ๊ฐ’์— ๊ณฑํ•˜๊ธฐ 2
.reduce(0, +) // ์ดˆ๊นƒ๊ฐ’๋ถ€ํ„ฐ ๊ฐ๊ฐ์˜ ๊ฐ’์— ๋”ํ•˜๊ธฐ ์—ฐ์‚ฐ
@devxoul
devxoul / swiftkorea.swift
Last active April 8, 2017 02:29
Swift Korea ์งˆ๋ฌธ์— ๋Œ€ํ•œ ๋‹ต๋ณ€
/*
๋ญ”๊ฐ€ ํผ์ฆ๊ฐ™์€ RxSwift ์งˆ๋ฌธ์ž…๋‹ˆ๋‹ค.
์„œ๋ฒ„์— 3 ํŽ˜์ด์ง€์˜ ๋ถ„๋Ÿ‰์„ ํ•œ๊บผ๋ฒˆ์— ์š”์ฒญํ•˜๋ ค๋Š”๋ฐ,
์š”์ฒญ์€ ๋™์‹œ์— ๋ณด๋‚ด๊ณ  ์‘๋‹ต์€ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
ํ…Œ์ŠคํŠธ ์‹œ๋‚˜๋ฆฌ์˜ค:
๊ฐ ์š”์ฒญ(Observable)๋“ค์€ subscribe ๋  ๋•Œ request๊ฐ€ ์‹œ์ž‘
๊ฐ ์š”์ฒญ์˜ request์—๋Š” 2, 4, 2์ดˆ์”ฉ ๊ฑธ๋ฆฐ๋‹ค๊ณ  ๊ฐ€์ •
-> 2์ดˆ ํ›„ ์ฒซ ํŽ˜์ด์ง€๊ฐ€ ๋œจ๊ณ 
-> ์ถ”๊ฐ€๋กœ 2์ดˆ ํ›„ ๋‚˜๋จธ์ง€๊ฐ€ ์ „๋ถ€ ๋œจ๋Š”
์ƒํ™ฉ์„ ์›ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.