From a6b48af9472c8f279229c2d392585d50002af80e Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Sat, 4 May 2024 14:05:05 +0700 Subject: [PATCH 1/2] feat: add pen assets --- .../Assets.xcassets/graphics/Contents.json | 6 +++++ .../graphics/eraser/Contents.json | 6 +++++ .../eraser/eraser.imageset/Contents.json | 23 ++++++++++++++++++ .../eraser/eraser.imageset/eraser.png | Bin 0 -> 3769 bytes .../eraser/eraser.imageset/eraser@2x.png | Bin 0 -> 12023 bytes .../eraser/eraser.imageset/eraser@3x.png | Bin 0 -> 23882 bytes .../graphics/pens/Contents.json | 6 +++++ .../pens/marker-base.imageset/Contents.json | 23 ++++++++++++++++++ .../pens/marker-base.imageset/bullet-base.png | Bin 0 -> 3494 bytes .../marker-base.imageset/bullet-base@2x.png | Bin 0 -> 9837 bytes .../marker-base.imageset/bullet-base@3x.png | Bin 0 -> 20408 bytes .../pens/marker-tip.imageset/Contents.json | 23 ++++++++++++++++++ .../pens/marker-tip.imageset/bullet-tip.png | Bin 0 -> 427 bytes .../marker-tip.imageset/bullet-tip@2x.png | Bin 0 -> 859 bytes .../marker-tip.imageset/bullet-tip@3x.png | Bin 0 -> 1352 bytes .../Assets.xcassets/textures/Contents.json | 6 +++++ .../point-texture.textureset/Contents.json | 12 +++++++++ .../Universal.mipmapset/Contents.json | 12 +++++++++ .../Universal.mipmapset/point-texture.png | Bin 0 -> 3614 bytes 19 files changed, 117 insertions(+) create mode 100644 Memola/Resources/Assets.xcassets/graphics/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png create mode 100644 Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png create mode 100644 Memola/Resources/Assets.xcassets/textures/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json create mode 100644 Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png diff --git a/Memola/Resources/Assets.xcassets/graphics/Contents.json b/Memola/Resources/Assets.xcassets/graphics/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Memola/Resources/Assets.xcassets/graphics/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json b/Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json b/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json new file mode 100644 index 0000000..58541c1 --- /dev/null +++ b/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "eraser.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "eraser@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "eraser@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png b/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png new file mode 100644 index 0000000000000000000000000000000000000000..efe860ccf6a6506e0a1bf6de214100f59df4eea2 GIT binary patch literal 3769 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 literal 0 HcmV?d00001 diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png b/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..0f7d179446c781ce66414736328495298024bc47 GIT binary patch literal 12023 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�NQz~w;3%l?Rpv1F#A+O9W^~8(OVi@lZ${ThEr`JA=(jbWZ&8bB zQX3i0>dw701hSU)dM10#2d)_G1cmY+?S#0SZ13^D13xotu$t@RHSeID(;JknBn~XNUvJ`$B*J&S0To?I)pDY{=>OIoTE@+p zI>Jdzxr^Bq-QDVsvIhv>xZe#mRH;dPfdv%S_Ntk?K;UU%DT$$tvoRx?<(Wy28ideJ(|#4X+LRiaFANSqUFkT2gkV zGREJ=c#IxDN&Cns`ns1=dFWrNoNQO0JZ8-H$5%iYAS#v_E zNDm!SAv!m(LOGIF{$q)mVmiMwNr@09{!FkS*3bBiCG!$)qX9ndAPp!;_u3NOE^3)m zp0G;diut20PO*km$lF*}6N$C&BcS$Cj4<|Q*=(T=_ob24!g7xI<$KQYXSNHC(QXp8 zwwu%@v@v@Bxixn_UGFR=rf~&Sn~u_-i^qMl{yrCCcXw3Dat(6l;#}Il`f^SGdX4!% zd?L4j$~WL>3K>AZ$S8J#=4Nr#8piA4 zAKoDZ7H02RcNJvD=sDUyoa>AGmisw>)mm~ppnCOk#gukajw5TI;V_fTKE5>@VL()d zM}4#!9KQ3>H{|69YR6~X&VYpPNQ0ql!cM=@IsWAB9~B<9&!nc`eVi(6GoA+v*dM-I z^j5f9e$egwh2P;gqpR0yPkZ{=S)yN>lj-kzrfjyN_pTvkVisA6zt~5_7}Jra=kjA5`xcXk_im zm%M!;r9az!ZMMeDamOmstmKBBVlH3Nfq+3wQ8}<=Z0VMnODrWnHL-Mki9=wbc;SG6 zR}h^#HA;Tv)~f7G&!F6PXjbAV9DmGEdUSERWAvjuLt9#mdL8G(gRo9pLif@!i>WVw+-0_R+neD~#h zN~|`UpK!#;Iz)>!e;9okPqJplYQO4!`I_OrlpHVk6)8&i+$9Op_NIGDh&Nr_nnYP9 z^iVv3{nH<9$<}q*9=vba7oPX$v`2?Z z(_s05i#mw}On?^3KL6;2AL6>2YlW9K=z}$XO^fnl*6=jRaaqv6KLx}0U;Rt>~3gXI$@yk55%by6*4gGiG z$-IL<=}*~{?!w7GaV(p)qWtCRuqW~&*V+3U z#R|0|i6hE2G&%(R0!`R_P{{j7ca*>@0AteNnG;SEX}#7REh)WUF&Y(A58e>(Qj}F0 zvJH}< @dtS%*6m3mhV8`3>pKKvx|^m_1jx|5qg;o6S9=6X-4)BO4M!e3KA+YTr0 zR*7bPw9F%ZJrAYI@?kKIVqNV})strx?{NltZJ_~jBXMjk#&^VZN8$wqeO_Ca!N_!O zJ7v$AdA8`kRWL4D{SpIe55(cm-r^df@p-Z-4eT9I+iu2TiASwARs? zvSoU8d>oEBVjuZc9q@5RZR*xKtiN^Vq_x9%c6}vTblFGopd%p zYn>TYtzLTMVAp{Sxz&6lnK&~sT#vRWj2=FXZqaJVegbPRz@HkHE#%Oo+}mat4J>>j zHHowR@f=|-1uEP@>*TGBbmVkodq$RX0nryWXw;i0++I?xKwZ8b-Z_LjsO8Gp_+{2q zT{r^w$r`0x>@CT+U+7M|$HowkR(^d}4DBwPO*!b7w^f+c4d*h*Y7wj8xb%9{vThmv zybT#)CV6$8e$4+Ome!n~@ecf&U%KW?_HRh7hom7qRuN#U0?qsE>!4p9K2DoIOII~l>c@Y|;My^kmP%&}Rw^F{f6r(WCb?)# z)c^fds9O0oUDWM&p;2RuLN||SPa&>@Q8xrWbp)jOab@y^Jszz-@l`Qe$VS$H$EY?A zT?gGhRJ5m!A=d>s;tl@Q9VTyHfK*24i38C8b6FZ(x@gv&MJzgv{kJWhNJ~TS!FzSv G=>G@Z_2wf0 literal 0 HcmV?d00001 diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/Contents.json b/Memola/Resources/Assets.xcassets/graphics/pens/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Memola/Resources/Assets.xcassets/graphics/pens/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json b/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json new file mode 100644 index 0000000..2734a89 --- /dev/null +++ b/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "bullet-base.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "bullet-base@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "bullet-base@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png b/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png new file mode 100644 index 0000000000000000000000000000000000000000..e14b91e13e3e73ed592ea41d051a4c32d6f96e7a GIT binary patch literal 3494 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 UUHmwH+W-In07*qoM6N<$g7mGYlmGw# literal 0 HcmV?d00001 diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png b/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..c21a5a9f8c0fbb9193e9f6351559382b2bbd526f GIT binary patch literal 9837 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 OgOin10@aEe2mc>U@-{^P literal 0 HcmV?d00001 diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png b/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..2146f61eac4e5f72e227a0d0ba97c9520a9e77d0 GIT binary patch literal 20408 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 IGY+@@2X<(c4*&oF literal 0 HcmV?d00001 From f0fbb7263aceb6272fd22f11c3e7651f0330e05c Mon Sep 17 00:00:00 2001 From: dscyrescotti Date: Sat, 4 May 2024 21:33:50 +0700 Subject: [PATCH 2/2] feat: set up persistence --- Memola.xcodeproj/project.pbxproj | 85 +++++++++++++++++- Memola/Persistence/Core/Persistence.swift | 66 ++++++++++++++ Memola/Persistence/Entities/Memo.swift | 20 +++++ .../AccentColor.colorset/Contents.json | 0 .../AppIcon.appiconset/Contents.json | 0 .../Assets.xcassets/Contents.json | 0 .../Assets.xcassets/graphics/Contents.json | 0 .../graphics/eraser/Contents.json | 0 .../eraser/eraser.imageset/Contents.json | 0 .../eraser/eraser.imageset/eraser.png | Bin .../eraser/eraser.imageset/eraser@2x.png | Bin .../eraser/eraser.imageset/eraser@3x.png | Bin .../graphics/pens/Contents.json | 0 .../pens/marker-base.imageset/Contents.json | 0 .../pens/marker-base.imageset/bullet-base.png | Bin .../marker-base.imageset/bullet-base@2x.png | Bin .../marker-base.imageset/bullet-base@3x.png | Bin .../pens/marker-tip.imageset/Contents.json | 0 .../pens/marker-tip.imageset/bullet-tip.png | Bin .../marker-tip.imageset/bullet-tip@2x.png | Bin .../marker-tip.imageset/bullet-tip@3x.png | Bin .../Assets.xcassets/textures/Contents.json | 0 .../point-texture.textureset/Contents.json | 0 .../Universal.mipmapset/Contents.json | 0 .../Universal.mipmapset/point-texture.png | Bin .../MemolaModel.xcdatamodel/contents | 10 +++ 26 files changed, 177 insertions(+), 4 deletions(-) create mode 100644 Memola/Persistence/Core/Persistence.swift create mode 100644 Memola/Persistence/Entities/Memo.swift rename Memola/Resources/{ => Assets}/Assets.xcassets/AccentColor.colorset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/AppIcon.appiconset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/eraser/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/textures/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/textures/point-texture.textureset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json (100%) rename Memola/Resources/{ => Assets}/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png (100%) create mode 100644 Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents diff --git a/Memola.xcodeproj/project.pbxproj b/Memola.xcodeproj/project.pbxproj index 30ef618..cef513d 100644 --- a/Memola.xcodeproj/project.pbxproj +++ b/Memola.xcodeproj/project.pbxproj @@ -62,6 +62,10 @@ ECA738F42BE612A000A4542E /* Array++.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA738F32BE612A000A4542E /* Array++.swift */; }; ECA738F62BE612B700A4542E /* MTLDevice++.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA738F52BE612B700A4542E /* MTLDevice++.swift */; }; ECA738F82BE612EB00A4542E /* Quad.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA738F72BE612EB00A4542E /* Quad.swift */; }; + ECA738FC2BE61C5200A4542E /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA738FB2BE61C5200A4542E /* Persistence.swift */; }; + ECA739012BE61D9C00A4542E /* MemolaModel.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = ECA738FF2BE61D9C00A4542E /* MemolaModel.xcdatamodeld */; }; + ECA739052BE61E3100A4542E /* Memo.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA739042BE61E3100A4542E /* Memo.swift */; }; + ECA739082BE623F300A4542E /* PenToolView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA739072BE623F300A4542E /* PenToolView.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ @@ -121,6 +125,10 @@ ECA738F32BE612A000A4542E /* Array++.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array++.swift"; sourceTree = ""; }; ECA738F52BE612B700A4542E /* MTLDevice++.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "MTLDevice++.swift"; sourceTree = ""; }; ECA738F72BE612EB00A4542E /* Quad.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Quad.swift; sourceTree = ""; }; + ECA738FB2BE61C5200A4542E /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = ""; }; + ECA739002BE61D9C00A4542E /* MemolaModel.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = MemolaModel.xcdatamodel; sourceTree = ""; }; + ECA739042BE61E3100A4542E /* Memo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Memo.swift; sourceTree = ""; }; + ECA739072BE623F300A4542E /* PenToolView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PenToolView.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -157,6 +165,7 @@ ECA7387E2BE5FE4200A4542E /* Canvas */, ECA738A12BE601F700A4542E /* Extensions */, ECA738772BE5EEE800A4542E /* Features */, + ECA738FA2BE61B1700A4542E /* Persistence */, EC7F6BF12BE5E6E400A34A7B /* Preview Content */, ECA738802BE5FE6000A4542E /* Resources */, ); @@ -200,6 +209,7 @@ isa = PBXGroup; children = ( ECA7387C2BE5EF4B00A4542E /* MemoView.swift */, + ECA739072BE623F300A4542E /* PenToolView.swift */, ); path = Memo; sourceTree = ""; @@ -224,7 +234,8 @@ ECA738802BE5FE6000A4542E /* Resources */ = { isa = PBXGroup; children = ( - EC7F6BEF2BE5E6E400A34A7B /* Assets.xcassets */, + ECA738FE2BE61D5700A4542E /* Models */, + ECA738FD2BE61D4700A4542E /* Assets */, ); path = Resources; sourceTree = ""; @@ -336,7 +347,6 @@ ECA738B12BE60D8800A4542E /* Tool */ = { isa = PBXGroup; children = ( - ECA738C22BE60E7200A4542E /* PenStyles */, ECA738BD2BE60E2800A4542E /* Pen */, ECA738BB2BE60E0300A4542E /* Tool.swift */, ); @@ -356,8 +366,8 @@ ECA738BD2BE60E2800A4542E /* Pen */ = { isa = PBXGroup; children = ( - ECA738BE2BE60E3400A4542E /* Pen.swift */, - ECA738C02BE60E5300A4542E /* PenStyle.swift */, + ECA739062BE61F7500A4542E /* Core */, + ECA738C22BE60E7200A4542E /* PenStyles */, ); path = Pen; sourceTree = ""; @@ -420,6 +430,56 @@ path = Geometries; sourceTree = ""; }; + ECA738FA2BE61B1700A4542E /* Persistence */ = { + isa = PBXGroup; + children = ( + ECA739032BE61E2600A4542E /* Entities */, + ECA739022BE61DE700A4542E /* Core */, + ); + path = Persistence; + sourceTree = ""; + }; + ECA738FD2BE61D4700A4542E /* Assets */ = { + isa = PBXGroup; + children = ( + EC7F6BEF2BE5E6E400A34A7B /* Assets.xcassets */, + ); + path = Assets; + sourceTree = ""; + }; + ECA738FE2BE61D5700A4542E /* Models */ = { + isa = PBXGroup; + children = ( + ECA738FF2BE61D9C00A4542E /* MemolaModel.xcdatamodeld */, + ); + path = Models; + sourceTree = ""; + }; + ECA739022BE61DE700A4542E /* Core */ = { + isa = PBXGroup; + children = ( + ECA738FB2BE61C5200A4542E /* Persistence.swift */, + ); + path = Core; + sourceTree = ""; + }; + ECA739032BE61E2600A4542E /* Entities */ = { + isa = PBXGroup; + children = ( + ECA739042BE61E3100A4542E /* Memo.swift */, + ); + path = Entities; + sourceTree = ""; + }; + ECA739062BE61F7500A4542E /* Core */ = { + isa = PBXGroup; + children = ( + ECA738BE2BE60E3400A4542E /* Pen.swift */, + ECA738C02BE60E5300A4542E /* PenStyle.swift */, + ); + path = Core; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -499,6 +559,7 @@ ECA738A82BE6025900A4542E /* GraphicUniforms.swift in Sources */, ECA738E62BE611FD00A4542E /* CGRect++.swift in Sources */, ECA738E82BE6120F00A4542E /* Color++.swift in Sources */, + ECA738FC2BE61C5200A4542E /* Persistence.swift in Sources */, ECA7387A2BE5EF0400A4542E /* MemosView.swift in Sources */, ECA738BA2BE60DEF00A4542E /* HistoryAction.swift in Sources */, ECA738AA2BE6026D00A4542E /* Uniforms.swift in Sources */, @@ -513,16 +574,19 @@ ECA738862BE5FF2500A4542E /* Canvas.swift in Sources */, ECA738882BE5FF4400A4542E /* Renderer.swift in Sources */, ECA738D42BE60F9100A4542E /* StrokeGenerator.swift in Sources */, + ECA739082BE623F300A4542E /* PenToolView.swift in Sources */, ECA738CB2BE60F1900A4542E /* ViewPortContext.swift in Sources */, ECA738EE2BE6125D00A4542E /* simd_float4x4++.swift in Sources */, ECA7388C2BE6009600A4542E /* Textures.swift in Sources */, ECA738B82BE60DDC00A4542E /* HistoryEvent.swift in Sources */, ECA738952BE6012D00A4542E /* ViewPort.metal in Sources */, + ECA739012BE61D9C00A4542E /* MemolaModel.xcdatamodeld in Sources */, ECA738F02BE6127700A4542E /* CGSize++.swift in Sources */, ECA738EC2BE6124E00A4542E /* CGAffineTransform++.swift in Sources */, ECA738E22BE610D000A4542E /* GraphicRenderPass.swift in Sources */, ECA738DC2BE6108D00A4542E /* StrokeRenderPass.swift in Sources */, ECA738F42BE612A000A4542E /* Array++.swift in Sources */, + ECA739052BE61E3100A4542E /* Memo.swift in Sources */, ECA7388F2BE600DA00A4542E /* Grid.metal in Sources */, ECA738C92BE60EF700A4542E /* GraphicContext.swift in Sources */, ECA738F62BE612B700A4542E /* MTLDevice++.swift in Sources */, @@ -754,6 +818,19 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCVersionGroup section */ + ECA738FF2BE61D9C00A4542E /* MemolaModel.xcdatamodeld */ = { + isa = XCVersionGroup; + children = ( + ECA739002BE61D9C00A4542E /* MemolaModel.xcdatamodel */, + ); + currentVersion = ECA739002BE61D9C00A4542E /* MemolaModel.xcdatamodel */; + path = MemolaModel.xcdatamodeld; + sourceTree = ""; + versionGroupType = wrapper.xcdatamodel; + }; +/* End XCVersionGroup section */ }; rootObject = EC7F6BE02BE5E6E300A34A7B /* Project object */; } diff --git a/Memola/Persistence/Core/Persistence.swift b/Memola/Persistence/Core/Persistence.swift new file mode 100644 index 0000000..4dee7f9 --- /dev/null +++ b/Memola/Persistence/Core/Persistence.swift @@ -0,0 +1,66 @@ +// +// Persistence.swift +// Memola +// +// Created by Dscyre Scotti on 5/4/24. +// + +import CoreData +import Foundation + +class Persistence { + private let modelName = "MemolaModel" + + static let shared: Persistence = Persistence() + + private init() { } + + var viewContext: NSManagedObjectContext { + persistentContainer.viewContext + } + + lazy var persistentContainer: NSPersistentContainer = { + let persistentStore = NSPersistentStoreDescription() + persistentStore.shouldMigrateStoreAutomatically = true + persistentStore.shouldInferMappingModelAutomatically = true + let container = NSPersistentContainer(name: modelName, managedObjectModel: managedObjectModel) + do { + let coordinator = container.persistentStoreCoordinator + if let oldStore = coordinator.persistentStores.first { + try coordinator.remove(oldStore) + } + _ = try coordinator.addPersistentStore(type: .sqlite, at: sqliteURL) + } catch { + fatalError("[Memola] - \(error.localizedDescription)") + } + container.persistentStoreDescriptions = [persistentStore] + container.loadPersistentStores { description, error in + if let error { + fatalError("[Memola]: \(error.localizedDescription)") + } + } + return container + }() + + private lazy var managedObjectModel: NSManagedObjectModel = { + guard let modelURL = Bundle.main.url(forResource: modelName, withExtension: ".momd"), let model = NSManagedObjectModel(contentsOf: modelURL) else { + fatalError("[Memola]: Unable to load model.") + } + return model + }() + + private lazy var sqliteURL: URL = { + do { + let fileURL = try FileManager.default.url( + for: .documentDirectory, + in: .userDomainMask, + appropriateFor: nil, + create: true + ).appendingPathComponent("\(modelName).sqlite") + NSLog(fileURL.absoluteString) + return fileURL + } catch { + fatalError("[Memola]: \(error.localizedDescription)") + } + }() +} diff --git a/Memola/Persistence/Entities/Memo.swift b/Memola/Persistence/Entities/Memo.swift new file mode 100644 index 0000000..3ea1cad --- /dev/null +++ b/Memola/Persistence/Entities/Memo.swift @@ -0,0 +1,20 @@ +// +// Memo.swift +// Memola +// +// Created by Dscyre Scotti on 5/4/24. +// + +import CoreData +import Foundation + +@objc(Memo) +class Memo: NSManagedObject { + @NSManaged var id: UUID + @NSManaged var title: String + @NSManaged var data: Data + @NSManaged var createdAt: Date + @NSManaged var updatedAt: Date +} + +extension Memo: Identifiable { } diff --git a/Memola/Resources/Assets.xcassets/AccentColor.colorset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/AccentColor.colorset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/AccentColor.colorset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/AccentColor.colorset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/AppIcon.appiconset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/Contents.json b/Memola/Resources/Assets/Assets.xcassets/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/eraser/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/eraser/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/eraser/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png b/Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser.png diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@2x.png diff --git a/Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/eraser/eraser.imageset/eraser@3x.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@2x.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-base.imageset/bullet-base@3x.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@2x.png diff --git a/Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png b/Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png similarity index 100% rename from Memola/Resources/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png rename to Memola/Resources/Assets/Assets.xcassets/graphics/pens/marker-tip.imageset/bullet-tip@3x.png diff --git a/Memola/Resources/Assets.xcassets/textures/Contents.json b/Memola/Resources/Assets/Assets.xcassets/textures/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/textures/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/textures/Contents.json diff --git a/Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json b/Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json similarity index 100% rename from Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json rename to Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/Contents.json diff --git a/Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png b/Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png similarity index 100% rename from Memola/Resources/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png rename to Memola/Resources/Assets/Assets.xcassets/textures/point-texture.textureset/Universal.mipmapset/point-texture.png diff --git a/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents b/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents new file mode 100644 index 0000000..bc23036 --- /dev/null +++ b/Memola/Resources/Models/MemolaModel.xcdatamodeld/MemolaModel.xcdatamodel/contents @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file