Skip to content
New issue

Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? # to your account

feature/AppStorage development is done #69

Open
wants to merge 3 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions AltSwiftUI.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,7 @@
2CD1A04C2512066D00E2CCBA /* ViewEnvironment.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD1A00B2512066D00E2CCBA /* ViewEnvironment.swift */; };
2CD1A04E2512066D00E2CCBA /* AltSwiftUI.h in Headers */ = {isa = PBXBuildFile; fileRef = 2CD1A00D2512066D00E2CCBA /* AltSwiftUI.h */; settings = {ATTRIBUTES = (Public, ); }; };
2CD1A056251206C200E2CCBA /* ViewTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CD1A054251206C200E2CCBA /* ViewTests.swift */; };
3047F8BB25FA15B800F3B5EF /* AppStorage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3047F8BA25FA15B800F3B5EF /* AppStorage.swift */; };
68CBD3E12578AADB00A3F033 /* SecureField.swift in Sources */ = {isa = PBXBuildFile; fileRef = 68CBD3E02578AADB00A3F033 /* SecureField.swift */; };
7D2D4D6B25148269000F5DDC /* Capsule.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D2D4D6525148269000F5DDC /* Capsule.swift */; };
7D2D4D6C25148269000F5DDC /* Circle.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7D2D4D6625148269000F5DDC /* Circle.swift */; };
Expand Down Expand Up @@ -166,6 +167,7 @@
2CD1A00D2512066D00E2CCBA /* AltSwiftUI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AltSwiftUI.h; sourceTree = "<group>"; };
2CD1A054251206C200E2CCBA /* ViewTests.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ViewTests.swift; sourceTree = "<group>"; };
2CD1A055251206C200E2CCBA /* Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
3047F8BA25FA15B800F3B5EF /* AppStorage.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppStorage.swift; sourceTree = "<group>"; };
68CBD3E02578AADB00A3F033 /* SecureField.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureField.swift; sourceTree = "<group>"; };
7D2D4D6525148269000F5DDC /* Capsule.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Capsule.swift; sourceTree = "<group>"; };
7D2D4D6625148269000F5DDC /* Circle.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Circle.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -282,6 +284,7 @@
2CD19FCE2512066D00E2CCBA /* State.swift */,
2CD19FD02512066D00E2CCBA /* StateObject.swift */,
2CD19FCA2512066D00E2CCBA /* StateTypes.swift */,
3047F8BA25FA15B800F3B5EF /* AppStorage.swift */,
);
path = State;
sourceTree = "<group>";
Expand Down Expand Up @@ -630,6 +633,7 @@
2CD1A01A2512066D00E2CCBA /* State.swift in Sources */,
2CD1A0482512066D00E2CCBA /* NavigationViews.swift in Sources */,
7D2D4D6B25148269000F5DDC /* Capsule.swift in Sources */,
3047F8BB25FA15B800F3B5EF /* AppStorage.swift in Sources */,
2CD1A0242512066D00E2CCBA /* ViewPropertyBuilder.swift in Sources */,
2CD1A0292512066D00E2CCBA /* ViewPropertyAnimationTypes.swift in Sources */,
2CD1A0182512066D00E2CCBA /* Environment.swift in Sources */,
Expand Down
4 changes: 4 additions & 0 deletions Example/AltSwiftUIExample.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
2CE5E2A2231398DA0072F907 /* AltSwiftUIExampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE5E2A1231398DA0072F907 /* AltSwiftUIExampleTests.swift */; };
2CE5E2AD231398DA0072F907 /* AltSwiftUIExampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CE5E2AC231398DA0072F907 /* AltSwiftUIExampleUITests.swift */; };
2CFE2AC025AD487800C925FC /* ScrollView2AxisExampleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2CFE2ABF25AD487800C925FC /* ScrollView2AxisExampleView.swift */; };
3047F8C625FA15D300F3B5EF /* AppStorageExampleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3047F8C325FA15D300F3B5EF /* AppStorageExampleView.swift */; };
35D1A58825C7EDA100861DC4 /* AlertsExampleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 35D1A58525C7EDA100861DC4 /* AlertsExampleView.swift */; };
682C3A7C2594B18A005E798E /* SecureFieldExampleView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 682C3A7B2594B18A005E798E /* SecureFieldExampleView.swift */; };
/* End PBXBuildFile section */
Expand Down Expand Up @@ -94,6 +95,7 @@
2CE5E2AC231398DA0072F907 /* AltSwiftUIExampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AltSwiftUIExampleUITests.swift; sourceTree = "<group>"; };
2CE5E2AE231398DA0072F907 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
2CFE2ABF25AD487800C925FC /* ScrollView2AxisExampleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScrollView2AxisExampleView.swift; sourceTree = "<group>"; };
3047F8C325FA15D300F3B5EF /* AppStorageExampleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AppStorageExampleView.swift; sourceTree = "<group>"; };
35D1A58525C7EDA100861DC4 /* AlertsExampleView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = AlertsExampleView.swift; sourceTree = "<group>"; };
682C3A7B2594B18A005E798E /* SecureFieldExampleView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureFieldExampleView.swift; sourceTree = "<group>"; };
/* End PBXFileReference section */
Expand Down Expand Up @@ -143,6 +145,7 @@
2CADC316251CA15400EA3F17 /* ShapesExampleView.swift */,
2C49E3CB2535382F00543E7D /* TextExampleView.swift */,
2CDCE7F225C40D2500BB52D1 /* StackUpdateExample.swift */,
3047F8C325FA15D300F3B5EF /* AppStorageExampleView.swift */,
);
path = ExampleViews;
sourceTree = "<group>";
Expand Down Expand Up @@ -372,6 +375,7 @@
2CADC30F251CA0DF00EA3F17 /* RamenExampleView.swift in Sources */,
2CADC317251CA15400EA3F17 /* ShapesExampleView.swift in Sources */,
2CFE2AC025AD487800C925FC /* ScrollView2AxisExampleView.swift in Sources */,
3047F8C625FA15D300F3B5EF /* AppStorageExampleView.swift in Sources */,
2CE5E28F231398D70072F907 /* ViewController.swift in Sources */,
2CE5E28B231398D70072F907 /* AppDelegate.swift in Sources */,
2CDCE7F325C40D2500BB52D1 /* StackUpdateExample.swift in Sources */,
Expand Down
189 changes: 189 additions & 0 deletions Example/AltSwiftUIExample/ExampleViews/AppStorageExampleView.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
//
// AppStorageExampleView.swift
// AltSwiftUIExample
//
// Created by yang.q.wang on 2021/3/1.
// Copyright © 2021 Rakuten Travel. All rights reserved.
//

import AltSwiftUI

enum Day: Int {
case Monday,Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
}
enum Country: String {
case China = "China"
case Japan = "Japan"
}
struct AppStorageExampleView: View {
var viewStore = ViewValues()
@AppStorage("username" , store:UserDefaults(suiteName: "com.rakuten.www")) var username = "David"


@AppStorage("optionalBool") var optionalBool: Bool?
// @AppStorage("optionalInt") var optionalInt: Int?
// @AppStorage("optionalDouble") var optionalDouble: Double?
// @AppStorage("optionalString") var optionalString:String?
// @AppStorage("optionalUrl") var optionalUrl:URL?
// @AppStorage("optionalData") var optionalData:Data?
//
// @AppStorage("initalBool") var initalBool = false
@AppStorage("initalInt") var initalInt = 100
// @AppStorage("initalDouble") var initalDouble = 100
// @AppStorage("initalString") var initalString = 100
// @AppStorage("initalUrl") var initalUrl = URL(string: "http://youtube.com")!
// @AppStorage("initalData") var initalData = "AltSwiftUI AppStorage".data(using: .utf8)!
//
@AppStorage("today") var today = Day.Monday
var body: View {
VStack {
Text("\(self.username)")
TextField("Please enter your name", text: $username)


HStack{
if let tempOptionalBool = self.optionalBool {
if tempOptionalBool {
Text("I am optionalBool variable and I am true").multilineTextAlignment(.leading)
}else{
Text("I am optionalBool variable and I am false").multilineTextAlignment(.leading)
}
}else{
Text("I am optionalBool variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalBool == nil {
self.optionalBool = true
}else{
self.optionalBool = !self.optionalBool!
}
}
}.padding()
HStack{

switch self.today {
case .Monday:
Text("I am Enum variable and today is Monday").multilineTextAlignment(.leading)
case .Tuesday:
Text("I am Enum variable and today is Tuesday").multilineTextAlignment(.leading)
case .Wednesday:
Text("I am Enum variable and today is Wednesday").multilineTextAlignment(.leading)
case .Thursday:
Text("I am Enum variable and today is Thursday").multilineTextAlignment(.leading)
case .Friday:
Text("I am Enum variable and today is Friday").multilineTextAlignment(.leading)
case .Saturday:
Text("I am Enum variable and today is Saturday").multilineTextAlignment(.leading)
case .Sunday:
Text("I am Enum variable and today is Sunday").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.today.rawValue < 6{
self.today = Day(rawValue: self.today.rawValue + 1)!
}else{
self.today = .Monday
}

}
}.padding()

HStack{
Text("I am IntialInt variable and value is \(self.initalInt)").multilineTextAlignment(.leading)
Spacer()
Button("Set Value") {
self.initalInt += 20
}
}.padding()
/*HStack{
if let tempOptionalInt = self.optionalInt {
Text("I am optionalInt variable and I am \(tempOptionalInt)").multilineTextAlignment(.leading)
}else{
Text("I am optionalInt variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalInt == nil {
self.optionalInt = 0
}else{
self.optionalInt = self.optionalInt! + 1
}
}
}.padding()
HStack{
if let tempOptionalDouble = self.optionalDouble {
Text("I am optionalDouble variable and I am \(tempOptionalDouble)").multilineTextAlignment(.leading)
}else{
Text("I am optionalDouble variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalDouble == nil {
self.optionalDouble = 0.1
}else{
self.optionalDouble = self.optionalDouble! + 0.1
}
}
}.padding()
HStack{
if let tempOptionalString = self.optionalString {
Text("I am optionalString variable and I am \(tempOptionalString)").multilineTextAlignment(.leading)
}else{
Text("I am optionalString variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalString == nil {
self.optionalString = "Text Value"
}else{
self.optionalString = self.optionalString! + "|A|"
}
}
}.padding()
HStack{
if let tempOptionalUrl = self.optionalUrl {
Text("I am optionalUrl variable and I am \(tempOptionalUrl)").multilineTextAlignment(.leading)
}else{
Text("I am optionalUrl variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalUrl == nil {
self.optionalUrl = URL(string: "https://google.com")
}else{
self.optionalUrl = URL(string: "https://apple.com")
}
}
}.padding()
HStack{
if let tempOptionalData = self.optionalData {
Text("I am optionalData variable and I am \(String(data: tempOptionalData, encoding: .utf8)!)").multilineTextAlignment(.leading)
}else{
Text("I am optionalData variable and I am nil").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
if self.optionalData == nil {
self.optionalData = "123456789".data(using: .utf8)
}else{
self.optionalData = "abcdefg".data(using: .utf8)
}
}
}.padding()
Text("Inital Value Demo").multilineTextAlignment(.center).background(.red).font(Font.largeTitle)
HStack{
if self.initalBool {
Text("I am InitalBool variable and I am true").multilineTextAlignment(.leading)
}else{
Text("I am InitalBool variable and I am false").multilineTextAlignment(.leading)
}
Spacer()
Button("Set Value") {
self.initalBool = !self.initalBool
}
}.padding()*/
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is a lot of commented code. This can get confusing so it's better to remove if not needed.

}
}
}

3 changes: 2 additions & 1 deletion Example/AltSwiftUIExample/ViewController.swift
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,8 @@ struct ExampleView: View {
ExampleViewData(title: "Texts", destination: TextExampleView()),
ExampleViewData(title: "Navigation", destination: NavigationExampleView()),
ExampleViewData(title: "SecureField", destination: SecureFieldExampleView()),
ExampleViewData(title: "Stack Update", destination: StackUpdateExample())
ExampleViewData(title: "Stack Update", destination: StackUpdateExample()),
ExampleViewData(title: "AppStorage", destination: AppStorageExampleView())
]

var body: View {
Expand Down
Loading