Skip to content

Instantly share code, notes, and snippets.

@KordianKL
KordianKL / HDAugumentedRealityExampleUsage.swift
Created April 26, 2017 13:16
Example of using HDAugumentedReality with iOS (Swift)
//
// Created by Kordian Ledzion on 15.03.2017.
// Copyright © 2017 Wolf Development. All rights reserved.
//
// Part of the code for HDAugumentedReality usage in one of my projects.
// It's showing AR pins with name and distance to locations loaded
import UIKit
import CoreLocation
enum Animoji {
case iPhoneX(String, Data)
case notiPhoneX(String)
}
extension Animoji {
fileprivate struct Serialization: Codable {
private var emoji: String?
private var expression: Data?
fileprivate init(animoji: Animoji) {
switch animoji {
case let .iPhoneX(emoji, expression):
extension Animoji: Encodable {
func encode(to encoder: Encoder) throws {
try Animoji.Serialization(animoji: self).encode(to: encoder)
}
}
let expr = "sexy gaze"
let jsonEncoder = JSONEncoder()
jsonEncoder.outputFormatting = .prettyPrinted
var animoji = Animoji.iPhoneX("💩", expr.data(using: .utf8)!)
var data = try jsonEncoder.encode(animoji)
var json = String(data: data, encoding: .utf8)!
{
"emoji" : "💩",
"expression" : "c2V4eSBnYXpl"
}
fileprivate struct Serialization: Codable {
private struct iPhoneXData: Codable {
let emoji: String
let expression: Data
}
private var iPhoneX: iPhoneXData?
private var notiPhoneX: String?
{
"iPhoneX" : {
"emoji" : "💩",
"expression" : "c2V4eSBnYXpl"
}
}
extension Animoji: Codable {
func encode(to encoder: Encoder) throws {
try Animoji.Serialization(animoji: self).encode(to: encoder)
}
init(from decoder: Decoder) throws {
self = try Animoji.Serialization(from: decoder).animoji()
}
let jsonDecoder = JSONDecoder()
var result = try jsonDecoder.decode(Animoji.self, from: data)