From 296f0de1638b679d8f08d347f5c78d215ff458ac Mon Sep 17 00:00:00 2001 From: i-colours-u Date: Wed, 13 Jul 2022 00:05:13 +0900 Subject: [PATCH 1/5] =?UTF-8?q?[Asset]=20#35=20-=20=EC=A7=80=EB=8F=84?= =?UTF-8?q?=ED=95=80=20=EC=9D=B4=EB=AF=B8=EC=A7=80=20=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=84=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets.xcassets/Map/Contents.json | 6 +++++ .../Map/icn_diet.imageset/Contents.json | 23 ++++++++++++++++++ .../Map/icn_diet.imageset/icn_diet.png | Bin 0 -> 1239 bytes .../Map/icn_diet.imageset/icn_diet@2x.png | Bin 0 -> 2334 bytes .../Map/icn_diet.imageset/icn_diet@3x.png | Bin 0 -> 3539 bytes .../icn_diet_selected.imageset/Contents.json | 23 ++++++++++++++++++ .../icn_diet_selected.png | Bin 0 -> 1748 bytes .../icn_diet_selected@2x.png | Bin 0 -> 3338 bytes .../icn_diet_selected@3x.png | Bin 0 -> 5165 bytes .../Map/icn_normal.imageset/Contents.json | 23 ++++++++++++++++++ .../Map/icn_normal.imageset/icn_normal.png | Bin 0 -> 1076 bytes .../Map/icn_normal.imageset/icn_normal@2x.png | Bin 0 -> 2039 bytes .../Map/icn_normal.imageset/icn_normal@3x.png | Bin 0 -> 3158 bytes .../icn_normal_seleted.imageset/Contents.json | 23 ++++++++++++++++++ .../icn_normal_seleted.png | Bin 0 -> 1508 bytes .../icn_normal_seleted@2x.png | Bin 0 -> 3034 bytes .../icn_normal_seleted@3x.png | Bin 0 -> 4509 bytes 17 files changed, 98 insertions(+) create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/Contents.json create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/Contents.json create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@2x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@3x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet_selected.imageset/Contents.json create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet_selected.imageset/icn_diet_selected.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet_selected.imageset/icn_diet_selected@2x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet_selected.imageset/icn_diet_selected@3x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/Contents.json create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/icn_normal.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/icn_normal@2x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/icn_normal@3x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/Contents.json create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted@2x.png create mode 100644 HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted@3x.png diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/Contents.json b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/Contents.json new file mode 100644 index 00000000..73c00596 --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/Contents.json b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/Contents.json new file mode 100644 index 00000000..1ab86bd9 --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "icn_diet.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icn_diet@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icn_diet@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet.png new file mode 100644 index 0000000000000000000000000000000000000000..d5f186af6ab3dd3aa8054603257cbed2cbf597ef GIT binary patch literal 1239 zcmV;|1StE7P)`-wOaffD~Ta&NeH||(So627)Xi& zrd3HRk^PWH!Za|229d0QwDjX4%=tC+BrC01B$>b=gRDHYQ^1=s3;DWj>Rni%;GwG@ z5zH@xB13LAQqL`FlC_C0qdc;kg}Q{z${%>>b%{p1Z=B#MT zmA`SIxydn^W0A8s(>ID3jZV3|34H!BQZq0sAn5O0r=j2ilEi+t^qqq%YCpK2NbsQp zej&%Adx{DnfYDCUgBvQ1`2lQ6Cde|hzBPscnh;_=LpXVC*t0M9V?SNnT9HNRqW(p;c8OyIm+6Q<7y@ zpyk6fS`#T}4OW`L_JAZ>&$^t)zHv@UWLwm_v+l}FS#Ho`*3G%C$|xh-Qq~pKb=#_} z%eHP7M~e&*ovi$^imZ%0fiWB%SXU=%U8tGQ(p#nIV+qX%F9c>E4&i;Ri*=Ll-J*4y z9cs4r6OcmWEXJ!jx9GR3BX>cbG)uA?UuZR5$IEm*V8V$p-r`6P>2}D&JFk?{9H_G8KErez-Q9np}!TDD5D`I zPus#4s#PM>D58vp)n{eUP|%UkJLU12-H<+7iT`p(qP33WIotpM002ovPDHLkV1jXz BIn4k7 literal 0 HcmV?d00001 diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@2x.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..18fd676b1f262d1c6cee71bfa2a5642b5d556a32 GIT binary patch literal 2334 zcmV+(3E}pMP)u7OoIEddr3Dzyo#?gIP(NcaOJyRI73iqKX< zP<7K41gUGBNJtfxDjNx;Dy?v+NC}DJ>3OfmX6zYzzV4kF+w({!vGF9HH)qb*y?3rg zF<~)BnO>p^{x*}+Xg|IhkF@bHvu->J_*&9wRU=x_`S};)v_dgJqlkczeJMJw>omzv z$H*$4Um*C3rqS)465WeR=um}aG1I$JG($Q~QP~>9pulIDr4n5`GcGJV6haa9`y5Sl zYjl~)mwJ>e>n!rwQMyKoQ7Y{998K{hIir;?^*E7df#*~TtVGxtS*R0vEkzeT|A2lb z$w(FU1_vbmiC6jCNop;!?Dywn`rs5v;)hiZN*d*;^+W|z{Mqj;tsB7NCP zr>H$x+|=pf^teddd=p4mB&c39jWefnL`t^lHHI!DpYLFeAZ^l6VduP0$UP}B;Z#dR&Lk@VlC z&P6u@+OnHByAsxj{s>gceCnS53EDF-K^t3n$``#=nn8~BNRh=o;wD>g6xPU7l}7)= zZ(XLtZ_ieruRUL;JAWQ^dF(77d)ajCT|V|0DJ0K%?h&Uv*D))2jcA?}irUkat`QZ$ z`qF*QnNCmFP>rZwjt#&F8``%{Z)z$m%2e)7Nh|Zb(A$;v{T?^R24r$6N9UWpp`ozw ztK8k6CBKr}YEOCt6(psUe;ocfyP`QVQz1lBh0v6T%8 zOIv@jLcbMG2*JG{o8x0ox;{1_eH@`iZ+>H+g4qTyG^jamTciXh8m3^jt{_!zQYSd0 zQG-Bcu~=Ewdg#p=OLTtt&w{wrqX4%GhIK-V-fbo3b)K8q*tFD z%vprJ`Cuq4|7QWI*{Q=%YhFV^@yqWANCNpYV^s5lYFq)Vl_ZFY+_YX)SVvT%0=w*^ zzc(X3s{}GPa<$`oHNvJO<*Y-ytO@$s^LrFE#TToV*C4J0;A=0LU#JRe| z+cikhqg!6FGXkGXm>c6M)2}>FlCTr@;O_JE;k%2nEW{K2y(4t&y*qShxAhczDl8WR$4N0G!&CI>`}xoWMkX-+&O8Uw`=WCuvA+GsX@P#85B@VKvD!R@_E^SdrP1ik#!3 z)?a6#w|9!Pwew6ouLlD5ipLI&8vRn-M5Zl|7&?E*@}!^PlhGm-GetG8IYN=yRmW@)sW{~aX-K(P95(%v^F zn|AjhOi_s+)-0a|f$Pb?w@C%8=^*E{YKF8Q+k9x8oWx4UHTa$T2Ca#Y!v4h=(ya_B z0M_^5uQ`!pnt`7SVN9xq0sah+>oS7k=Bmm7n%21gTBP=#+!h5zHwW z_DfQI$)k8?jD|%X%kE&A66Bzh=Ecjg!DrpjX>@&qM#A;(3*5%UX{MmM{I1xoM&f|f-y+qoLD7I<_BmW3U_ zc4#KCTGzl@=j{H&R@fxjZ33d_$erG3rlHZF@!7{e?VsEFasd^53)|){!M6*j5NL4+TtYjJHsG922i%7y@TwWk5@xBr3Wq$O zQ{cvvl!f28=RvA`SL9X)y?_HU_MDNj&I`M|@#S-YS{)C)04Jp0s(_o~x2QEY@d1n6 zymsufx<%^BL?Z<&Q0oyWwX#F{%{2^v+e+J|Nb{>^q_3ql{B5fY=ZLPAicKn|3kx{E zoo|Kw7M~HHl@y@jK08&GRwx(4jVLQvW(dkeiN#jXbUH!t3}y&cCrKenEf&Nun7Q6B zCJ0I`7KkmP<5N5!1GuPKRG?f~z$cQ8#l(+tWtF86Q0@xMEak**ATtyN<$Y&oDI`J_ z7O=S42sQ?~#TkIoU{y~juD}ciBSXGNLT*!+*8^}%=oSmY*nG_(@cy!X3Eg6WG5O;t zsm*aC6BR^au@w~V#2l%pAW~t00&yc36+|v9kSJ~}L(bLoVFMYxlHv!Y=s3}{!ViFdzGwy z7yk5|+kLpBAlAYHu|F=C!N#^NX%=*0lW5*)i|DBNAI8@>n`YE?0{{R307*qoM6N<$ Ef*i+N4*&oF literal 0 HcmV?d00001 diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@3x.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_diet.imageset/icn_diet@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..b306024579cef1e7c18028090c4308b3ffd4b654 GIT binary patch literal 3539 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 qnMf_bPBSj>^U86000000009a7bBm000&x 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 VljV=F*1-S(002ovPDHLkV1f>A$3g%A literal 0 HcmV?d00001 diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/icn_normal@3x.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal.imageset/icn_normal@3x.png new file mode 100644 index 0000000000000000000000000000000000000000..8ba2db0d95c7266a5761d2818452b8e966d80a1f GIT binary patch literal 3158 zcmV-c45{;pP)rg=F7uU$xrpBy8LxZuQ#;mEJiPwCT!RvH@ zWE%Q&9Y0Z<=TzGxw`Y1+R;pc7?V=LI ziXwou2(;CopyZ67P<-4{?UHKOIOh^9MWF2-oqw9bTfGfdl!T1)9NmGH2z2MqC=ozk znG-WHun@sOIzP*tn1~^$2z1PUjrwEzZMdk~rI2C>CITgZJ+*n4hTHjR?oi?iS1179 zMWC(!Ly9xocg>svgoxjfN0b0y{TMb)NXTPPwVUcVdCiTyIDwA+IQyq0)MZYdT*0{r zlmJlHy-K{Rd|W}Uui zI0*-8hY|nxNU+VjDm0uW%UBhGP5?3X-y^{l$gfV?oRG360xbZ<|DzzZVu&0-1mKrHsdkwx&{+h^1&{+s5hx7D)$#8vgia#R!xpDwSfP@=uEWRH zIf0%BxJaCM{&^K8cZnW+km$!Bi9Y#6)!gn-XC8f&=!F-Eo_#j?yvXh3Ms%x8MKZ1ESAAr`A077|}cLB*IGb!w*ESzs^Yr zKU0z@HeT)AI2>pJTqjOE`DDHT0K}2)z$U!CdptAT+JyL5#o19=q+~xwF zd8YU?bYR)%WjypyBCsM5et3bohQ^6vBN6C4fZsa6sx!T<6S(@lZkaZnaH=hW)M8M6 ztXADVF9JzmS&pW64s}@b100kkQGlE}!nRHkl=&0|$qgJff$q1u}FTNnA zAU~)b7HWw=FAALyS8%qz@y50g(D`q_O`Z7cvuz>Z|GRuS87lH+Qa3DA4iQtMficAZ z61hhnNkV{4yGE_x(4pit#KmW5SO$iThpXln9-wMw6w}I}w$@(-T&5`G@C9MvoNA?O z5K5hZWl>0I3aW{R%hoAYi&qyw(FK*gJWSFTM+`m)>IiSWRa{T_ z_~T>_!aZ<<-J-jyl;s37@&zV+ka*>R;a`jb0N8INr}%z(K>U70u&EtTa(Vm~x#1vn ze*iz2tUHgdzow`uOH|9gw|yr18jvlDa)KH80tce3{OT&(_r*8g6n}>AUF3lFfg9wW z*jpm-?gALo7Xd4cH53@I|3yQ~k?NNxo*<8$$eU%%bAk!^q|6fI8<%f`(sP-c`JIG9 z-C(PVm?r{fSGwdtuX(;R45b`+B_i zVzU3dgnU%r4sf6B5Yhjl(K>VXr%om7`!Hz}Lx@0}N8O{$0Ssk1ksFX8;zpoL^F~$# z&kQ&JPO`|1;(<`y$X5F(&Td0HeVXAP5v&LX9HK(lzW4 zI-loCqda!d-=>0?c7h4T1mY|zai$svL6`+35J=nAL`9&3VcqC(By-rto3tV%Oh|`> zvIzCNR%^o&X1;=wPAxmOZdI z;AXiuM1nRR-+%4WDbV5AUu?hszIx^H^@1^+Ap9Lh%0z(o%Ps)H&t}gi zh`@*e;xI$Mv}>e?g8&_w9YSLJ+iywUg0NL}MN%Gcts*!i#iP*?9wLB^rpNbbjO90p zo#-fYmW8}P1XnJXl;#SQZ!ErKNpLjn1~Rr8m$ z2o@xhNkigO^I~5F`so;wAP$3T>8GJ&7nNKgq3;|B1t2Q|2?_lN{rhS9jRPXk79noX zZx-1HW96+eT#(RL5DGrZzM1>@8&x>EMI0_!7i@D!xxnGRga2ZV)e(E&wV;AZ`#f%cAEar>T2sy0}4n)N%n(O9bKu zQBunVK$DwPh#SNMT;OEge_UGx;s#MMuNo1gX?nYwzmve7+PQ$CkqET9WKMxE5I`dr z0BvquH6xi}FNaFBFP=lLa|Z; z=v>b4ECM}blqAtVjphf+u;BzINtCeQ4^tUjk_D`YKr%veYa)=a;Ehd9 zpldRi#-!fktWv?pTq=K*PgIRVi1131EvAHe0U9#BL`CouJcA>aH00yq;=03fIc zfI0wJvOdK51v4)Y{JRGY2WbX)d;ObA08bMGf;&NqAtj1P1YaU1uyFz~kVG*^L8uH) zPB4T-(IkSb9zDoP1VAT>eH4PJ2(n9pS%rf%Dm2X1<^=VJU=_hC*f~Lp)6}0Qw*H4K zT|DXnwj$6ARr@evz)0X&_F06SU>gn$DlCjCS(+B(h~dAgJsr9tSOw>But6Wd;}joA z1dnkS0AMcypw}S8bPWT`pj%fY-svV-{U_HP~w(cg*m0pVgXdyrV|DyUrz}atB z1g)s&^e!jJGQ!PO*K2g>Qxv&)>wm|7MUX9e?*wVIE9_B{CyeRf_ebZiR6E&s w`_D2c5g1ZpI7La7ajDu3N``=gyF>f`0itU2<36FO>i_@%07*qoM6N<$g3Nf4qyPW_ literal 0 HcmV?d00001 diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/Contents.json b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/Contents.json new file mode 100644 index 00000000..24ac3d3d --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/Contents.json @@ -0,0 +1,23 @@ +{ + "images" : [ + { + "filename" : "icn_normal_seleted.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "icn_normal_seleted@2x.png", + "idiom" : "universal", + "scale" : "2x" + }, + { + "filename" : "icn_normal_seleted@3x.png", + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted.png new file mode 100644 index 0000000000000000000000000000000000000000..2818daf9218b5081c5f76e8961be9042e0c94202 GIT binary patch literal 1508 zcmVqHD%plP$FcO%N{_Vy_5j$5@2clDo(6``&x!vja5D{>sXdJS|JPte-<&mUKzj(?#j>RmwL$ z2ix0wXpjI6pc{T$%8HaB+?hxjOW6@Y6g=Zq1Zn(Go*u$a!}FL(8H*UN;0Z4xNaNQK zH$FsrC@GN-F`PuuNB#+7Uq2}nf?y-q+IkC1tVGa0&m+Hq*a=oq)3w3rD0oLW|3uaRQ5=z;Xde*Yg$|A@Q)BK;J8$8kVtwbev&_5WVd$9Ky zmF-k2LWc!NC>5em1aAVIJquj90{r;{eEwX%|HX^(ca#Et{elNJMTlHi&J{uT0$<>R z$B%&v7vk6N-T^OOBNO5RvZ?NB+(n!>(=4+^XF(3x{3LJj3M=1W?c^W)5IF4fziqe z2>Wys|2}+_PoGfu|J7hGv6gI@y~8?e;E`#QwCUUb|NqI00}*s$WH&LAuEe895`V9w z5twx{@hbZN>J0Uy&@?8j!56I5y?e3WzJ4A1tV>_d-=nBZviw`!P|73`;Tn9Ch(Ra< zlOz_tW)G6U?WA#M&cwY9gDu~?bSd6$4!T6NXq*?YqsmccgILUz*cWaY-GLArowyK(-+bnK z{5=y6w_VuZA5etLaKRk#5H_4SKP${W-R##Bx1gWX|I_^a8z0%Cfm7P0-1CzED8dq4 zV1-!`HlDDOw1TWumJM?;Uy5gn!2flhYgncTAza~+H=!Wu%+3dNDbxKpZg6KQkm$IN zIj7cnhrV(u0%8#wT>#Mm_D)5ROoJkP#e8#M2|qF4>`;Vl%r}!$caZik=*h+j=93BA zpX3SF>wP-Tm=6o)#vHQ4hXWDj)Fs{~Yn#lpxpYNGuLy$a`PL)nBIn>dWP%bam`-)2 z2T3=hhHqy;-z+ zt#3WWksiUMXnO4q`bCuYLD^zX&ZQ60eYV94R`WhAn`rHeHEb4rSSW(dt-GF1mtF`` zWy+mhrb0JiFpSD}DiuL@nO${@O7*UE@AP8p49C5Y;qF2e&BHWe( z)`Nk0;N#93Ue+w>et8q^G73E1TEyGJEve8L?G3v}MOVDm#fv+b@Y*8SUPV(44vf6s zyu!N(q`@AeaGK1Prq(gCqP|za@b?-?&>FD>qAw=#b=M6Ai`#@$rLh&QdML|WUcn88 z1_dCESwe!o0-rG=M12$*7JxJ^0^a##S%;^e_#?aNM{Lf!!+r0000< KMNUMnLSTXvO2yIu literal 0 HcmV?d00001 diff --git a/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted@2x.png b/HealthFoodMe/HealthFoodMe/Global/Resources/Assets.xcassets/Map/icn_normal_seleted.imageset/icn_normal_seleted@2x.png new file mode 100644 index 0000000000000000000000000000000000000000..35f5db0b71dfe56ca5faae55791a7cdce8ed6ca9 GIT binary patch literal 3034 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 literal 0 HcmV?d00001 From bfa7fa5a68ff37942ae1968ef15e0f8985306622 Mon Sep 17 00:00:00 2001 From: i-colours-u Date: Wed, 13 Jul 2022 00:05:23 +0900 Subject: [PATCH 2/5] =?UTF-8?q?[fix]=20#35=20-=20Main=20Map=20Model=20?= =?UTF-8?q?=EB=8D=B0=EC=9D=B4=ED=84=B0=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Domain/Model/Map/MainMapScene/MainMapModel.swift | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/HealthFoodMe/HealthFoodMe/Domain/Model/Map/MainMapScene/MainMapModel.swift b/HealthFoodMe/HealthFoodMe/Domain/Model/Map/MainMapScene/MainMapModel.swift index 791f5cad..e0640faa 100644 --- a/HealthFoodMe/HealthFoodMe/Domain/Model/Map/MainMapScene/MainMapModel.swift +++ b/HealthFoodMe/HealthFoodMe/Domain/Model/Map/MainMapScene/MainMapModel.swift @@ -7,6 +7,13 @@ import Foundation -struct MainMapModel { +struct MapPointDataModel { + let latitude: Double + let longtitude: Double + let type: PointerType +} +enum PointerType { + case normalFood + case healthFood } From 41ce5bc2d0e40944656060de560bf94834db173c Mon Sep 17 00:00:00 2001 From: i-colours-u Date: Wed, 13 Jul 2022 00:05:47 +0900 Subject: [PATCH 3/5] =?UTF-8?q?[Feat]=20#35=20-=20map=20container=20View?= =?UTF-8?q?=20Reactive=20Extension=20=EB=A9=94=EC=84=9C=EB=93=9C=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/mapContainerView + Reactive.swift | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView + Reactive.swift diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView + Reactive.swift b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView + Reactive.swift new file mode 100644 index 00000000..050e8591 --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView + Reactive.swift @@ -0,0 +1,26 @@ +// +// NaverMapContainerView + Reactive.swift +// NaverMap + RxDelegate +// +// Created by 송지훈 on 2022/07/12. +// + +import NMapsMap +import RxCocoa +import RxSwift + +extension Reactive where Base: NaverMapContainerView { + internal var pointList: Binder<[MapPointDataModel]> { + return Binder(self.base) { containerView, points in + containerView.pointList.accept(points) + } + } +} + +extension Reactive where Base: NaverMapContainerView { + internal var currentSelectPoint: Binder { + return Binder(self.base) { containerView, point in + containerView.setSelectPoint.accept(point) + } + } +} From 206c4aa59396d5ae0168aaf00f121cfd9c2b36f4 Mon Sep 17 00:00:00 2001 From: i-colours-u Date: Wed, 13 Jul 2022 00:06:02 +0900 Subject: [PATCH 4/5] =?UTF-8?q?[Feat]=20#35=20-=20mapContainerView=20Deleg?= =?UTF-8?q?ate=20Proxy=20=ED=8C=8C=EC=9D=BC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Views/mapContainerViewDelegateProxy.swift | 37 +++++++++++++++++++ 1 file changed, 37 insertions(+) create mode 100644 HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerViewDelegateProxy.swift diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerViewDelegateProxy.swift b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerViewDelegateProxy.swift new file mode 100644 index 00000000..c89af5ce --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerViewDelegateProxy.swift @@ -0,0 +1,37 @@ +// +// NaverMapContainerViewDelegateProxy.swift +// NaverMap + RxDelegate +// +// Created by 송지훈 on 2022/07/12. +// + +import NMapsMap +import RxCocoa +import RxSwift + +final class NaverMapContainerViewDelegateProxy: DelegateProxy,DelegateProxyType, NMFMapViewTouchDelegate { + static func registerKnownImplementations() { + self.register { (object) -> NaverMapContainerViewDelegateProxy in + NaverMapContainerViewDelegateProxy(parentObject: object, delegateProxy:self) + } + } + + static func currentDelegate(for object: NaverMapContainerView) -> NMFMapViewTouchDelegate? { + return object.naverMapView.mapView.touchDelegate + } + + static func setCurrentDelegate(_ delegate: NMFMapViewTouchDelegate?, to object: NaverMapContainerView) { + object.naverMapView.mapView.touchDelegate = delegate + } +} + +extension Reactive where Base: NaverMapContainerView { + var delegate: DelegateProxy { + return NaverMapContainerViewDelegateProxy.proxy(for: self.base) + } + + var mapViewClicked: Observable { + return delegate.methodInvoked(#selector(NMFMapViewTouchDelegate.mapView(_:didTapMap:point:))) + .map { _ in return ()} + } +} From 6eff0010b223b246099846d7532f04a693f9a149 Mon Sep 17 00:00:00 2001 From: i-colours-u Date: Wed, 13 Jul 2022 00:06:21 +0900 Subject: [PATCH 5/5] =?UTF-8?q?[Feat]=20#35=20-=20naver=20map=20container?= =?UTF-8?q?=20=EB=B7=B0=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HealthFoodMe.xcodeproj/project.pbxproj | 108 +++++++++------ .../MainMapScene/Views/mapContainerView.swift | 128 ++++++++++++++++++ 2 files changed, 192 insertions(+), 44 deletions(-) create mode 100644 HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView.swift diff --git a/HealthFoodMe/HealthFoodMe.xcodeproj/project.pbxproj b/HealthFoodMe/HealthFoodMe.xcodeproj/project.pbxproj index a002f2a3..01743941 100644 --- a/HealthFoodMe/HealthFoodMe.xcodeproj/project.pbxproj +++ b/HealthFoodMe/HealthFoodMe.xcodeproj/project.pbxproj @@ -7,7 +7,6 @@ objects = { /* Begin PBXBuildFile section */ - 2EB23785D4711C41BE97BA3F /* Pods_HealthFoodMe.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 14DC488961BE98CD8C010993 /* Pods_HealthFoodMe.framework */; }; 3B0B25542876BBE400950539 /* NotoSansCJKkr-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B254E2876BBE300950539 /* NotoSansCJKkr-Regular.otf */; }; 3B0B25552876BBE400950539 /* Pretendard-Bold.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B254F2876BBE300950539 /* Pretendard-Bold.otf */; }; 3B0B25562876BBE400950539 /* Pretendard-Regular.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B25502876BBE300950539 /* Pretendard-Regular.otf */; }; @@ -16,13 +15,13 @@ 3B0B25592876BBE400950539 /* NotoSansCJKkr-Medium.otf in Resources */ = {isa = PBXBuildFile; fileRef = 3B0B25532876BBE400950539 /* NotoSansCJKkr-Medium.otf */; }; 3BCC441E28745FD800661A12 /* SocialLoginVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BCC441D28745FD800661A12 /* SocialLoginVC.swift */; }; 3BCC442028745FE500661A12 /* SocialLogin.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 3BCC441F28745FE500661A12 /* SocialLogin.storyboard */; }; + 5886D49E10282855ADBDE143 /* Pods_HealthFoodMe.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 142C37AC02B7DBB941359F4B /* Pods_HealthFoodMe.framework */; }; 69028BA62874673600373984 /* MenuCellCVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69028BA52874673600373984 /* MenuCellCVC.swift */; }; 69028BA82874675800373984 /* MenuView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69028BA72874675800373984 /* MenuView.swift */; }; 69028BAA287467F100373984 /* MenuDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69028BA9287467F100373984 /* MenuDetailView.swift */; }; 69028BAC2874681700373984 /* MenuTabVC.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69028BAB2874681700373984 /* MenuTabVC.swift */; }; 69028BB02874A60E00373984 /* HeaderView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 69028BAF2874A60E00373984 /* HeaderView.swift */; }; 690AB5492875C1B200DE72D4 /* MenuDataModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 690AB5482875C1B200DE72D4 /* MenuDataModel.swift */; }; - 695758B7287D7B6700E36789 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = 695758B6287D7B6700E36789 /* Config.swift */; }; 695758B9287D7C0B00E36789 /* MenuTab.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 695758B8287D7C0B00E36789 /* MenuTab.storyboard */; }; A938BB8E287D221200B8DE07 /* Search.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A938BB8D287D221200B8DE07 /* Search.storyboard */; }; A938BB90287D222800B8DE07 /* MainDetail.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = A938BB8F287D222800B8DE07 /* MainDetail.storyboard */; }; @@ -119,10 +118,15 @@ EBF66B082872AF5B00DE0ED1 /* SampleEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBF66B072872AF5B00DE0ED1 /* SampleEntity.swift */; }; EBF66B0A2872B21F00DE0ED1 /* StringLiterals.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBF66B092872B21F00DE0ED1 /* StringLiterals.swift */; }; EBF66B0C2872B4FE00DE0ED1 /* StoryboardLiterals.swift in Sources */ = {isa = PBXBuildFile; fileRef = EBF66B0B2872B4FE00DE0ED1 /* StoryboardLiterals.swift */; }; + FD58291A287DC39A00CE62E8 /* mapContainerViewDelegateProxy.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD582917287DC39A00CE62E8 /* mapContainerViewDelegateProxy.swift */; }; + FD58291B287DC39A00CE62E8 /* mapContainerView + Reactive.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD582918287DC39A00CE62E8 /* mapContainerView + Reactive.swift */; }; + FD58291C287DC39A00CE62E8 /* mapContainerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD582919287DC39A00CE62E8 /* mapContainerView.swift */; }; + FD89904F287DC4F400144E07 /* Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = FD89904E287DC4F400144E07 /* Config.swift */; }; /* End PBXBuildFile section */ /* Begin PBXFileReference section */ - 14DC488961BE98CD8C010993 /* Pods_HealthFoodMe.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HealthFoodMe.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 0CC83077EBB8A80956139111 /* Pods-HealthFoodMe.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HealthFoodMe.release.xcconfig"; path = "Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe.release.xcconfig"; sourceTree = ""; }; + 142C37AC02B7DBB941359F4B /* Pods_HealthFoodMe.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_HealthFoodMe.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 3B0B254D28757C7100950539 /* HealthFoodMe.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = HealthFoodMe.entitlements; sourceTree = ""; }; 3B0B254E2876BBE300950539 /* NotoSansCJKkr-Regular.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "NotoSansCJKkr-Regular.otf"; sourceTree = ""; }; 3B0B254F2876BBE300950539 /* Pretendard-Bold.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "Pretendard-Bold.otf"; sourceTree = ""; }; @@ -132,13 +136,13 @@ 3B0B25532876BBE400950539 /* NotoSansCJKkr-Medium.otf */ = {isa = PBXFileReference; lastKnownFileType = file; path = "NotoSansCJKkr-Medium.otf"; sourceTree = ""; }; 3BCC441D28745FD800661A12 /* SocialLoginVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SocialLoginVC.swift; sourceTree = ""; }; 3BCC441F28745FE500661A12 /* SocialLogin.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = SocialLogin.storyboard; sourceTree = ""; }; + 489A65A68E12AA2585E17522 /* Pods-HealthFoodMe.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HealthFoodMe.debug.xcconfig"; path = "Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe.debug.xcconfig"; sourceTree = ""; }; 69028BA52874673600373984 /* MenuCellCVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuCellCVC.swift; sourceTree = ""; }; 69028BA72874675800373984 /* MenuView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuView.swift; sourceTree = ""; }; 69028BA9287467F100373984 /* MenuDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuDetailView.swift; sourceTree = ""; }; 69028BAB2874681700373984 /* MenuTabVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuTabVC.swift; sourceTree = ""; }; 69028BAF2874A60E00373984 /* HeaderView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HeaderView.swift; sourceTree = ""; }; 690AB5482875C1B200DE72D4 /* MenuDataModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MenuDataModel.swift; sourceTree = ""; }; - 695758B6287D7B6700E36789 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = ""; }; 695758B8287D7C0B00E36789 /* MenuTab.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MenuTab.storyboard; sourceTree = ""; }; A938BB8D287D221200B8DE07 /* Search.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = Search.storyboard; sourceTree = ""; }; A938BB8F287D222800B8DE07 /* MainDetail.storyboard */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; path = MainDetail.storyboard; sourceTree = ""; }; @@ -147,7 +151,6 @@ A9E593C62874266200B0F8B5 /* SearchRecent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchRecent.swift; sourceTree = ""; }; A9E593CE2876C26900B0F8B5 /* Color.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Color.xcassets; sourceTree = ""; }; A9E593D0287818E900B0F8B5 /* SearchTVC.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchTVC.swift; sourceTree = ""; }; - E71673C053B2E49E39F1AADB /* Pods-HealthFoodMe.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HealthFoodMe.release.xcconfig"; path = "Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe.release.xcconfig"; sourceTree = ""; }; EB033E83287B5BE300C48FB9 /* StarRatingView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StarRatingView.swift; sourceTree = ""; }; EB085ED628716E1900361837 /* HealthFoodMe.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = HealthFoodMe.app; sourceTree = BUILT_PRODUCTS_DIR; }; EB085EE728716E1B00361837 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; @@ -238,7 +241,10 @@ EBF66B072872AF5B00DE0ED1 /* SampleEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleEntity.swift; sourceTree = ""; }; EBF66B092872B21F00DE0ED1 /* StringLiterals.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StringLiterals.swift; sourceTree = ""; }; EBF66B0B2872B4FE00DE0ED1 /* StoryboardLiterals.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = StoryboardLiterals.swift; sourceTree = ""; }; - FB08F925E37E9FAB6970F6A9 /* Pods-HealthFoodMe.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-HealthFoodMe.debug.xcconfig"; path = "Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe.debug.xcconfig"; sourceTree = ""; }; + FD582917287DC39A00CE62E8 /* mapContainerViewDelegateProxy.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = mapContainerViewDelegateProxy.swift; sourceTree = ""; }; + FD582918287DC39A00CE62E8 /* mapContainerView + Reactive.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "mapContainerView + Reactive.swift"; sourceTree = ""; }; + FD582919287DC39A00CE62E8 /* mapContainerView.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = mapContainerView.swift; sourceTree = ""; }; + FD89904E287DC4F400144E07 /* Config.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Config.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -246,7 +252,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( - 2EB23785D4711C41BE97BA3F /* Pods_HealthFoodMe.framework in Frameworks */, + 5886D49E10282855ADBDE143 /* Pods_HealthFoodMe.framework in Frameworks */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -324,6 +330,14 @@ path = Views; sourceTree = ""; }; + 9BB188F7D898EEB7C5ABA8BD /* Frameworks */ = { + isa = PBXGroup; + children = ( + 142C37AC02B7DBB941359F4B /* Pods_HealthFoodMe.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; A9325272287D24CD001EDF50 /* Search */ = { isa = PBXGroup; children = ( @@ -376,19 +390,11 @@ path = Object; sourceTree = ""; }; - AED78D77F3472DE575D5B1A2 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 14DC488961BE98CD8C010993 /* Pods_HealthFoodMe.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; E3F60CBC9B890A7FB4D4AAAF /* Pods */ = { isa = PBXGroup; children = ( - FB08F925E37E9FAB6970F6A9 /* Pods-HealthFoodMe.debug.xcconfig */, - E71673C053B2E49E39F1AADB /* Pods-HealthFoodMe.release.xcconfig */, + 489A65A68E12AA2585E17522 /* Pods-HealthFoodMe.debug.xcconfig */, + 0CC83077EBB8A80956139111 /* Pods-HealthFoodMe.release.xcconfig */, ); path = Pods; sourceTree = ""; @@ -407,7 +413,7 @@ EB085ED828716E1900361837 /* HealthFoodMe */, EB085ED728716E1900361837 /* Products */, E3F60CBC9B890A7FB4D4AAAF /* Pods */, - AED78D77F3472DE575D5B1A2 /* Frameworks */, + 9BB188F7D898EEB7C5ABA8BD /* Frameworks */, ); sourceTree = ""; }; @@ -565,6 +571,7 @@ EB6A44E32873BABE00749582 /* MainMapScene */ = { isa = PBXGroup; children = ( + FD582916287DC2C500CE62E8 /* Views */, EB6A44E42873BACA00749582 /* VC */, EB6A44E52873BACD00749582 /* ViewModel */, ); @@ -869,8 +876,8 @@ EBF66A8B287227F500DE0ED1 /* Environment */ = { isa = PBXGroup; children = ( + FD89904E287DC4F400144E07 /* Config.swift */, EBF66A8C287227F500DE0ED1 /* NetworkConstants.swift */, - 695758B6287D7B6700E36789 /* Config.swift */, ); path = Environment; sourceTree = ""; @@ -984,6 +991,16 @@ path = Entity; sourceTree = ""; }; + FD582916287DC2C500CE62E8 /* Views */ = { + isa = PBXGroup; + children = ( + FD582919287DC39A00CE62E8 /* mapContainerView.swift */, + FD582917287DC39A00CE62E8 /* mapContainerViewDelegateProxy.swift */, + FD582918287DC39A00CE62E8 /* mapContainerView + Reactive.swift */, + ); + path = Views; + sourceTree = ""; + }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -991,12 +1008,12 @@ isa = PBXNativeTarget; buildConfigurationList = EB085EEA28716E1B00361837 /* Build configuration list for PBXNativeTarget "HealthFoodMe" */; buildPhases = ( - EA402D2917C481F372EF3E0F /* [CP] Check Pods Manifest.lock */, + 40BAC3ABC541EA4CA066481E /* [CP] Check Pods Manifest.lock */, EB085ED228716E1900361837 /* Sources */, EB085ED328716E1900361837 /* Frameworks */, EB085ED428716E1900361837 /* Resources */, EB6A44C5287365E400749582 /* ShellScript */, - F5536ACFA7D238A1253C5861 /* [CP] Embed Pods Frameworks */, + 096883CAE67A2496108CA711 /* [CP] Embed Pods Frameworks */, ); buildRules = ( ); @@ -1067,29 +1084,24 @@ /* End PBXResourcesBuildPhase section */ /* Begin PBXShellScriptBuildPhase section */ - EA402D2917C481F372EF3E0F /* [CP] Check Pods Manifest.lock */ = { + 096883CAE67A2496108CA711 /* [CP] Embed Pods Frameworks */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - inputPaths = ( - "${PODS_PODFILE_DIR_PATH}/Podfile.lock", - "${PODS_ROOT}/Manifest.lock", - ); - name = "[CP] Check Pods Manifest.lock"; + name = "[CP] Embed Pods Frameworks"; outputFileListPaths = ( - ); - outputPaths = ( - "$(DERIVED_FILE_DIR)/Pods-HealthFoodMe-checkManifestLockResult.txt", + "${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks-${CONFIGURATION}-output-files.xcfilelist", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks.sh\"\n"; showEnvVarsInLog = 0; }; - EB6A44C5287365E400749582 /* ShellScript */ = { + 40BAC3ABC541EA4CA066481E /* [CP] Check Pods Manifest.lock */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( @@ -1097,31 +1109,36 @@ inputFileListPaths = ( ); inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", ); + name = "[CP] Check Pods Manifest.lock"; outputFileListPaths = ( ); outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-HealthFoodMe-checkManifestLockResult.txt", ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "${PODS_ROOT}/SwiftLint/swiftlint\n"; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; }; - F5536ACFA7D238A1253C5861 /* [CP] Embed Pods Frameworks */ = { + EB6A44C5287365E400749582 /* ShellScript */ = { isa = PBXShellScriptBuildPhase; buildActionMask = 2147483647; files = ( ); inputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks-${CONFIGURATION}-input-files.xcfilelist", ); - name = "[CP] Embed Pods Frameworks"; + inputPaths = ( + ); outputFileListPaths = ( - "${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + outputPaths = ( ); runOnlyForDeploymentPostprocessing = 0; shellPath = /bin/sh; - shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-HealthFoodMe/Pods-HealthFoodMe-frameworks.sh\"\n"; - showEnvVarsInLog = 0; + shellScript = "${PODS_ROOT}/SwiftLint/swiftlint\n"; }; /* End PBXShellScriptBuildPhase section */ @@ -1133,6 +1150,7 @@ EBF66AFF287227F500DE0ED1 /* makeAlert.swift in Sources */, EBF66AF3287227F500DE0ED1 /* applyShadow.swift in Sources */, EB6A44D628737CC400749582 /* MainDetailEntity.swift in Sources */, + FD89904F287DC4F400144E07 /* Config.swift in Sources */, EB6A4515287425F900749582 /* DetailTabTVC.swift in Sources */, EBF66AE5287227F500DE0ED1 /* NetworkConstants.swift in Sources */, EB6A44F32873BED500749582 /* MainMapEntity.swift in Sources */, @@ -1146,6 +1164,7 @@ EBF66AC5287227F500DE0ED1 /* UITextField+.swift in Sources */, EBF66AE6287227F500DE0ED1 /* AuthService.swift in Sources */, EBF66AFB287227F500DE0ED1 /* setImage.swift in Sources */, + FD58291C287DC39A00CE62E8 /* mapContainerView.swift in Sources */, EBF66AF6287227F500DE0ED1 /* setRootViewController.swift in Sources */, EBF66AD4287227F500DE0ED1 /* UICollectionViewRegisterable.swift in Sources */, EB6A44D128737CC400749582 /* MainDetailUseCase.swift in Sources */, @@ -1154,6 +1173,7 @@ EBF66AF8287227F500DE0ED1 /* JsonCoder.swift in Sources */, EBF66AFA287227F500DE0ED1 /* getClassName.swift in Sources */, EBF66AE4287227F500DE0ED1 /* HeaderType.swift in Sources */, + FD58291A287DC39A00CE62E8 /* mapContainerViewDelegateProxy.swift in Sources */, EBF66ADB287227F500DE0ED1 /* LaunchInstructor.swift in Sources */, EBF66B01287227F500DE0ED1 /* PostDetail.swift in Sources */, EBF66ABC287227F500DE0ED1 /* UserDefaults+.swift in Sources */, @@ -1171,7 +1191,7 @@ EBF66AC1287227F500DE0ED1 /* UIStackView+.swift in Sources */, EBF66AF1287227F500DE0ED1 /* ShowToast.swift in Sources */, EBF66AC4287227F500DE0ED1 /* UIButton+.swift in Sources */, - 695758B7287D7B6700E36789 /* Config.swift in Sources */, + FD58291B287DC39A00CE62E8 /* mapContainerView + Reactive.swift in Sources */, EBF66AF0287227F500DE0ED1 /* BaseVC.swift in Sources */, EBF66B082872AF5B00DE0ED1 /* SampleEntity.swift in Sources */, EBF66B03287227F500DE0ED1 /* SignUp.swift in Sources */, @@ -1360,7 +1380,7 @@ }; EB085EEB28716E1B00361837 /* Debug */ = { isa = XCBuildConfiguration; - baseConfigurationReference = FB08F925E37E9FAB6970F6A9 /* Pods-HealthFoodMe.debug.xcconfig */; + baseConfigurationReference = 489A65A68E12AA2585E17522 /* Pods-HealthFoodMe.debug.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1383,7 +1403,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.healthFoodMe.release; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = HealthFoodMe_Dev; + PROVISIONING_PROFILE_SPECIFIER = healthFood_dev; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; @@ -1392,7 +1412,7 @@ }; EB085EEC28716E1B00361837 /* Release */ = { isa = XCBuildConfiguration; - baseConfigurationReference = E71673C053B2E49E39F1AADB /* Pods-HealthFoodMe.release.xcconfig */; + baseConfigurationReference = 0CC83077EBB8A80956139111 /* Pods-HealthFoodMe.release.xcconfig */; buildSettings = { ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; @@ -1415,7 +1435,7 @@ MARKETING_VERSION = 1.0; PRODUCT_BUNDLE_IDENTIFIER = com.healthFoodMe.release; PRODUCT_NAME = "$(TARGET_NAME)"; - PROVISIONING_PROFILE_SPECIFIER = HealthFoodMe_Dist; + PROVISIONING_PROFILE_SPECIFIER = healthfood_distribution; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = 1; diff --git a/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView.swift b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView.swift new file mode 100644 index 00000000..06ae2649 --- /dev/null +++ b/HealthFoodMe/HealthFoodMe/Presentation/Map/MainMapScene/Views/mapContainerView.swift @@ -0,0 +1,128 @@ +// +// NaverMapContainerView.swift +// NaverMap + RxDelegate +// +// Created by 송지훈 on 2022/07/12. +// + +import Foundation +import NMapsMap +import RxRelay +import RxSwift + +final class NaverMapContainerView: UIView{ + + private let disposeBag = DisposeBag() + private var markers = [NMFMarker]() + private var previousMarker: NMFMarker? = nil + private var selectedMarker: NMFMarker? = nil + var naverMapView = NMFNaverMapView() + var delegate: NMFMapViewTouchDelegate? + var pointList = PublishRelay<[MapPointDataModel]>() + var setSelectPoint = PublishRelay() + var disableSelectPoint = PublishRelay() + + override init(frame: CGRect) { + super.init(frame: frame) + bindRelay() + setUI() + moveCameraPosition(NMGLatLng(lat: 37.5666102, lng: 126.9783881)) + } + + required init?(coder aDecoder: NSCoder) { + super.init(coder: aDecoder) + bindRelay() + setUI() + moveCameraPosition(NMGLatLng(lat: 37.5666102, lng: 126.9783881)) + } +} + +extension NaverMapContainerView { + private func setUI() { + naverMapView = NMFNaverMapView(frame: self.frame) + naverMapView.showLocationButton = true + naverMapView.mapView.positionMode = .compass + + addSubview(naverMapView) + + naverMapView.snp.makeConstraints { make in + make.edges.equalToSuperview() + } + + } + + private func moveCameraPosition(_ point: NMGLatLng) { + let cameraUpdate = NMFCameraUpdate(scrollTo: point) + cameraUpdate.animation = .fly + cameraUpdate.animationDuration = 2 + naverMapView.mapView.moveCamera(cameraUpdate) + } + + private func bindRelay() { + pointList.subscribe(onNext: { [weak self] pointList in + guard let self = self else { return } + self.setPointMarkers(pointList) + }).disposed(by: self.disposeBag) + + setSelectPoint.subscribe(onNext: { [weak self] selectedPoint in + self?.setClickedMarker(selectedPoint) + }).disposed(by: self.disposeBag) + + disableSelectPoint.subscribe(onNext: { [weak self] in + self?.disableAllMarker() + }).disposed(by: self.disposeBag) + + } + + private func setPointMarkers(_ points: [MapPointDataModel]) { + DispatchQueue.global(qos: .default).async { + for point in points { + let marker = NMFMarker() + marker.position = NMGLatLng.init(lat: point.latitude, lng: point.longtitude) + self.setMarkState(mark: marker, selectState: false) + marker.touchHandler = { _ in + if let seletedMark = self.selectedMarker { + self.setMarkState(mark: seletedMark, selectState: false) + } + self.setMarkState(mark: marker, selectState: true) + self.setSelectPoint.accept(point) + self.selectedMarker = marker + return true + } + self.markers.append(marker) + } + DispatchQueue.main.async { [weak self] in + guard let self = self else { return } + for marker in self.markers { + marker.mapView = self.naverMapView.mapView + } + } + } + } + + private func setClickedMarker(_ selectedPoint: MapPointDataModel) { + let NMGPosition = NMGLatLng(lat: selectedPoint.latitude, + lng: selectedPoint.longtitude) + guard let marker = markers.filter({ point in + return point.position == NMGPosition + }).first else { return } + moveCameraPosition(NMGPosition) + if let seletedMark = self.selectedMarker { + setMarkState(mark: seletedMark, selectState: false) + } + setMarkState(mark: marker, selectState: true) + self.selectedMarker = marker + } + + private func disableAllMarker() { + guard selectedMarker != nil else { return } + setMarkState(mark: selectedMarker!, selectState: false) + } + + private func setMarkState(mark: NMFMarker, selectState: Bool) { + let iconName = selectState ? "icn_normal_seleted" : "icn_normal" + mark.iconImage = NMFOverlayImage.init(image: UIImage(named: iconName) ?? UIImage()) + } +} + +