Add projects

This commit is contained in:
Ivan Vorobei
2019-06-07 09:02:12 +03:00
parent f385cd4929
commit fce7627f56
42 changed files with 2011 additions and 0 deletions

View File

@@ -0,0 +1,15 @@
//
// Note.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
struct Note: Hashable, Codable, Identifiable {
let id = UUID()
var text: String
var date = Date()
}

View File

@@ -0,0 +1,38 @@
//
// NoteData.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
class NoteData {
static let shared = NoteData()
var notes: [Note] = [
Note(text: "New Note"),
Note(text: "Another Note")
]
private init() { load() }
static func dateToString(date: Date) -> String {
let formatter = DateFormatter()
formatter.dateStyle = .medium
return formatter.string(from: date)
}
func save() {
UserDefaults.standard.set(try? PropertyListEncoder().encode(notes), forKey: "notes")
debugPrint("save called")
}
func load() {
if let data = UserDefaults.standard.object(forKey: "notes") as? Data {
self.notes = try! PropertyListDecoder().decode([Note].self, from: data)
}
}
}

View File

@@ -0,0 +1,21 @@
//
// UserData.swift
// SwiftUINote
//
// Created by chanju Jeon on 05/06/2019.
// Copyright © 2019 we'd. All rights reserved.
//
import SwiftUI
import Combine
final class UserData: BindableObject {
let didChange = PassthroughSubject<UserData, Never>()
var notes = NoteData.shared.notes {
didSet {
didChange.send(self)
NoteData.shared.notes = notes
}
}
}