{"id":3968,"date":"2016-10-19T23:41:19","date_gmt":"2016-10-19T22:41:19","guid":{"rendered":"https:\/\/marvel7077.wpengine.com\/?p=3968"},"modified":"2016-10-23T21:58:18","modified_gmt":"2016-10-23T20:58:18","slug":"designer-learned-to-code-and-released-an-app-in-4-months","status":"publish","type":"post","link":"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/","title":{"rendered":"How I, a designer, learned to code and released an app in 4 months"},"content":{"rendered":"<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Okay, I\u2019ll be honest with you right away. The title is a little misleading. I started learning Swift 4 months ago and I knew <em>some<\/em> coding before that. But I have never created a native app for any platform. Thinking about it now, I had no idea what I was up against\u2026<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">For you to understand the <em>how<\/em> I did it, first I must tell you the <em>why<\/em>.<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Thinking about it now, I had no idea what I was up against\u2026\"<\/p><\/span><\/blockquote>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">Traveling back in time<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I always loved computers. My father bought our first machine when I was around 8 years old, and I became hooked in a second. It had a blurry CRT screen and it was running DOS, but it did what you wanted it to do. That thing was pure magic for God\u2019s sake! Of course I mostly played games on it but I fell in love with the whole environment. I learned about how a PC worked, turned all the knobs and switches in the programs and became the guy others came to for tech-advice.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Fast forward to 1999. It was the time of 56k dial up modems and ADSL lines. I was still into computers as the Internet started gaining popularity in Hungary. I spent most of my afternoons in the school\u2019s IT room visiting Geocities pages. It was the beautiful era of <frame> based websites with the <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/vignette3.wikia.nocookie.net\/uncyclopedia\/images\/a\/ab\/Dancing_baby.gif\/revision\/latest?cb=20100906182852\" target=\"_blank\">dancing baby animgif<\/a> and I wanted a part of it.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I started learning HTML and created my first website. And since it was \u201999 I appropriately named it <em>Zolee Site Millenium<\/em>. It ran on our school server and was only accessible via a Frankensteinian URL, something like www.kkt.piar.school.gov.hu\/~hosszu2 (notice the nice tilde character in there). But I was online, I conquered a little bit of the new promise land called the World Wide Web. It felt amazing.<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"I conquered a little bit of the new promise land called the World Wide Web. It felt amazing.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">My love for gaming stuck with me in the following years: I was playing a lot of Counter-Strike. As it became the most popular game, I always had a chance to create a website for my current team. I loved designing and building pages, but after a while started focusing my efforts on the visuals and usability. The latest trends of web development passed right by me as I learned more and more about pixels and user-experience.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Today I work as a full-time UI designer at a Hungarian agency. I have no experience with the current top frameworks like <em>Node, Angular<\/em> or <em>Bootstrap<\/em>. And I\u2019m okay with that.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">But I\u2019ve been keeping an eye on HTML, CSS and JavaScript goodies, because I always work on personal projects on the side.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">The idea for GAget<\/h2>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">In 2011 <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/zoltan.co\/\" target=\"_blank\">my website<\/a> got a huge facelift. The layout got <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/m1llah.deviantart.com\/art\/zoltanhosszu-com-redesign-197756415\" target=\"_blank\">featured on DeviantArt<\/a> and I felt excited about new users checking it out every day. But I also was really frustrated. Not because of the number visitors, but because there was no <em>quick<\/em> way for me to check them. There were two options. I either had to keep fiddling with Google Analytics, or I needed to find a simple app to do the trick for me. That\u2019s what OS X Dashboard widgets are for, I thought, so I started looking around.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">But the solutions out there were either <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.engadget.com\/2007\/07\/22\/widget-watch-dashalytics-3-0\/\" target=\"_blank\">too nerdy<\/a> and ugly or just <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/dribbble.com\/shots\/107497-Analytics-Widget\" target=\"_blank\">didn\u2019t give me enough data<\/a>. So being a designer, I drew up a mockup of what the best solution for me could be and posted the design on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/dribbble.com\/shots\/229435-Analytics-dashboard-widget\" target=\"_blank\">Dribbble<\/a>.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/10\/My-initial-solution.png\" alt=\"my-initial-solution\" width=\"440\" height=\"300\" class=\"aligncenter size-full wp-image-3969\" \/><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">A couple of dozen likes made me dig into the topic a bit more. I found out that widgets were essentially HTML + JavaScript apps, so I started taking it a little more seriously. I mean, these were the two languages I was most familiar with.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The working prototype was running on my Dashboard in a couple of days. I named it <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">GAget<\/strong> [pronounced the same way as <em>gadget<\/em>] as an acronym for <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">G<\/strong>oogle <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">A<\/strong>nalytics wid<strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">get<\/strong>. A silly name, but it stuck. <\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The widget was released about 2 weeks later, in August of 2011.<\/p>\n<div id=\"attachment_3970\" style=\"width: 976px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3970\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/10\/Bookmarks.png\" alt=\"bookmarks\" width=\"966\" height=\"743\" class=\"size-full wp-image-3970\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Bookmarks.png 966w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Bookmarks-600x461.png 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Bookmarks-768x591.png 768w\" sizes=\"auto, (max-width: 966px) 100vw, 966px\" \/><p id=\"caption-attachment-3970\" class=\"wp-caption-text\">I stopped updating the bookmarks featuring GAget after a while\u2026<\/p><\/div>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The amount of feedback was stunning: <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/www.macstories.net\/news\/gaget-puts-beautiful-google-analytics-on-your-dashboard\/\" target=\"_blank\">MacStories<\/a>, <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/www.swiss-miss.com\/2011\/12\/gaget.html\" target=\"_blank\">SwissMiss<\/a> and tons of smaller blogs featured GAget. I even had my name printed in the Hungarian version of PC World magazine.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I knew I had to keep working on it.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">What to do next?<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Today the widget has over 84 thousand downloads and it is being used by thousands weekly. With a friend of mine we even created an <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/gagetapp.com\/\" target=\"_blank\">iPhone version<\/a>. So when Apple released Yosemite and discontinued the development of <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/en.wikipedia.org\/wiki\/Dashcode\" target=\"_blank\">Dashcode<\/a>, GAget\u2019s future started looking pretty grim.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">But as one hand took something away, the other gave something back: Apple opened up the Notification Center for developers to display widgets there. Hope! Maybe the success story of my small widget could continue!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><center><div id=\"attachment_3971\" style=\"width: 650px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" aria-describedby=\"caption-attachment-3971\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/10\/Instagram-post.jpeg\" alt=\"instagram-post\" width=\"640\" height=\"640\" class=\"size-full wp-image-3971\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post.jpeg 640w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-300x300.jpeg 300w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-600x600.jpeg 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-32x32.jpeg 32w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-50x50.jpeg 50w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-64x64.jpeg 64w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-96x96.jpeg 96w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Instagram-post-128x128.jpeg 128w\" sizes=\"auto, (max-width: 640px) 100vw, 640px\" \/><p id=\"caption-attachment-3971\" class=\"wp-caption-text\">My Instagram post (https:\/\/www.instagram.com\/p\/sFlLgnpa7H\/) about the new design.<\/p><\/div><\/center><\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I started reading Apple\u2019s documentation on <em>Today extensions<\/em> (this is what they call widgets). But it was all native Objective-C code. Ugh! Dealing with a compiler, memory leaks and multi-threaded processes was not what I wanted to do. It sounds scary if you\u2019ve never done it before. But I made up my mind, GAget needed to become a native widget!<\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"My biggest problem was that I had no idea where to start.\"<\/p><\/span><\/blockquote>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">The Objective-Struggle<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I purchased a <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/itunes.apple.com\/hu\/book\/ios-programming\/id821592947?mt=11\" target=\"_blank\">book<\/a> about iPhone development in Objective-C, but gave up after a couple of sections. To be honest, for someone familiar with front-end languages and a bit of PHP, Objective-C looked way too complex. Look at this code:<\/p>\n<aside class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s\">\n<pre><code class=\"language-objectivec\">@\u200bi\u200bn\u200bt\u200be\u200br\u200bf\u200ba\u200bc\u200be\u200b \u200b\u200bR\u200be\u200bm\u200bi\u200bn\u200bd\u200be\u200br\u200bV\u200bi\u200be\u200bw\u200bC\u200bo\u200bn\u200bt\u200br\u200bo\u200bl\u200bl\u200be\u200br\u200b(\u200b)\u200b\r\n\r\n@\u200bp\u200br\u200bo\u200bp\u200be\u200br\u200bt\u200by\u200b \u200b(\u200bn\u200bo\u200bn\u200ba\u200bt\u200bo\u200bm\u200bi\u200bc\u200b,\u200b \u200bw\u200be\u200ba\u200bk\u200b)\u200b \u200bI\u200bB\u200bO\u200bu\u200bt\u200bl\u200be\u200bt\u200b \u200bU\u200bI\u200bD\u200ba\u200bt\u200be\u200bP\u200bi\u200bc\u200bk\u200be\u200br\u200b \u200b*\u200bd\u200ba\u200bt\u200be\u200bP\u200bi\u200bc\u200bk\u200be\u200br\u200b;\u200b\r\n\r\n@\u200be\u200bn\u200bd\u200b<\/code><\/pre>\n<\/aside>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">What could an <em>interface<\/em>, a property be, what does <em>nonatomic<\/em> or <em>weak<\/em> mean and what the hell are @ and * doing in there? I understood <em>end<\/em> though!<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/10\/ezgif-3348349948.gif\" alt=\"ezgif-3348349948\" width=\"596\" height=\"336\" class=\"aligncenter size-full wp-image-3989\" \/><\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">The swifter way to code<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">The tutorials in the book were leading nowhere. After a few weeks of struggle, I didn\u2019t get any closer to a native widget.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Then I remembered that Apple <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/www.apple.com\/swift\/\" target=\"_blank\">introduced<\/a> a new programming language called <em>Swift<\/em> alongside Yosemite. It was new to everyone, so a lot of gurus started writing about it, discussing <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/readwrite.com\/2015\/02\/10\/tim-cook-swift-app-objective-c\/\" target=\"_blank\">why it sucked<\/a> and how <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/venturebeat.com\/2014\/06\/07\/swift-is-great-but-you-should-still-know-objective-c-first\/\" target=\"_blank\">you should learn Objective-C<\/a> before even thinking about touching Swift. All this buzz made me take a look: I downloaded and started reading its documentation.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">It felt like a breeze. The code started looking familiar, something like a little complex JavaScript! I fired up Xcode and started copying what people were doing in tutorials.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">My main goal was an OS X widget, but most tutorials were focused on Swift itself or iPhone apps so I had to keep searching. I still had a lot of unanswered questions, like:<\/p>\n<ul class=\"pageWrap pageWrap--s list list--unordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li>How can a widget and a containing app communicate? (Core data and app groups)<\/li>\n<li>Can I use hover interaction? (No)<\/li>\n<li>How do I open only one row of the widget while closing the others? (Auto layout and some manual height hacking)<\/li>\n<\/ul>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"https:\/\/developer.apple.com\/library\/content\/documentation\/General\/Conceptual\/ExtensibilityPG\/Today.html#\/\/apple_ref\/doc\/uid\/TP40014214-CH11-SW1\" target=\"_blank\">Apple\u2019s one page long documentation on widgets<\/a> forced me to dig up source codes on GitHub and Stack Overflow and it took me countless hours to figure out the answers.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><a class=\"link link--blue fontWeight-4\"href=\"http:\/\/zoltan.co\/work\/swift.html\" target=\"_blank\">I collected and published the links<\/a><\/strong> I found useful along the way. They might be relevant for you too, in case you\u2019re starting out with iOS or OS X programming.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I managed to find everything I needed and started moving faster than I expected: GAget for Yosemite started to take shape.<\/p>\n<div id='gallery-1' class='gallery galleryid-3968 gallery-columns-1 gallery-size-full'><dl class='gallery-item'>\n\t\t\t<dt class='gallery-icon landscape'>\n\t\t\t\t<a href='https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/GAget-for-Yosemite.jpeg'><img loading=\"lazy\" decoding=\"async\" width=\"1440\" height=\"900\" src=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/GAget-for-Yosemite.jpeg\" class=\"attachment-full size-full\" alt=\"\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/GAget-for-Yosemite.jpeg 1440w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/GAget-for-Yosemite-600x375.jpeg 600w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/GAget-for-Yosemite-768x480.jpeg 768w\" sizes=\"auto, (max-width: 1440px) 100vw, 1440px\" \/><\/a>\n\t\t\t<\/dt><\/dl><br style=\"clear: both\" \/>\n\t\t<\/div>\n\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">MVC, multi-threaded processes, app targets, view controllers and core data meant nothing 4 months ago. But thanks to the tutorials, Stack Overflow and a lot of sleepless nights I managed to learn the bases of Swift and OS X development.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Thanks to 800 people the beta testing was a blast. <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/gagetapp.com\/osx\/\" target=\"_blank\">GAget is now available in the App Store<\/a> as a designer\u2019s first native application.<\/p>\n<h2 class=\"pageWrap pageWrap--s marginTop-xl marginBottom-l c-black lineHeight-xl fontSize-xl fontWeight-5 breakPointM-lineHeight-xxl breakPointM-fontSize-xxl\" style=\"margin-left: auto; margin-right: auto;\">What I learned\u200a\u2014\u200abesides a new programming language<\/h2>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"...the struggle phase might be long and frustrating but the solution is out there.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">I knew that working on a personal project is awesome long before Swift came along. You get to do whatever <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">you<\/strong> want and you don\u2019t answer to a boss or a client. You can add and remove features any way you like and you work in your own pace.<\/p>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">Deadlines<\/h3>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">However, I found that <strong class=\"c-slate lineHeight-l fontSize-l fontWeight-5 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">giving yourself a deadline can be extremely motivating<\/strong>. Every New Year\u2019s Eve my wife and I sit down and make a list about the things what we want to achieve in the following year. This time I listed that I want to release the new version of GAget by the end of January: this was my deadline.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">Even though I ended up missing it by a month (thanks to Apple\u2019s review process and a few other projects), I was working the hardest in January to check this thing off my list. <\/p>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"Having it written down on a piece of paper is a powerful motivator.\"<\/p><\/span><\/blockquote>\n<h3 class=\"pageWrap pageWrap--s marginTop-l marginBottom-m c-black lineHeight-xl fontSize-xl fontWeight-5\">The circle of learning<\/h3>\n<blockquote class=\"pageWrap pageWrap--s position-relative marginTopBottom-l breakPointM-marginTopBottom-xl\"><div class=\"blog-quote-before position-absolute bg-marvel\"><\/div><div class=\"tweet-quote blog-quote-after position-absolute bg-marvel cursor-pointer transitionDuration-l transitionProperty-all transitionTimingFunction-cv-easeOutCircular scaleUp--hover zi-weak\"><svg class=\"fill-white opacity-0 pointerEvents-none position-absolute pinCenter transitionProperty-all transitionTimingFunction-easeInOut\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"24\" height=\"20\" viewBox=\"0 0 24 20\"><path d=\"M24,2.37a9.64,9.64,0,0,1-2.83.79A5,5,0,0,0,23.34.37a9.72,9.72,0,0,1-3.13,1.23A4.86,4.86,0,0,0,16.62,0a5,5,0,0,0-4.8,6.2A13.87,13.87,0,0,1,1.67.92,5.13,5.13,0,0,0,3.19,7.67,4.81,4.81,0,0,1,1,7a5,5,0,0,0,3.95,5,4.82,4.82,0,0,1-2.22.09,4.94,4.94,0,0,0,4.6,3.51A9.72,9.72,0,0,1,0,17.73,13.69,13.69,0,0,0,7.55,20c9.14,0,14.31-7.92,14-15A10.17,10.17,0,0,0,24,2.37Z\"\/><\/svg><\/div><p class=\"blog-quote position-relative textAlign-center c-marvel\"><span class=\"blog-quote-text transitionDuration-l transitionProperty-all transitionTimingFunction-easeInOut\">\"I discovered that while learning something new there are 3 phases: excitement, struggle & solution.\"<\/p><\/span><\/blockquote>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/marvel7077.wpengine.com\/wp-content\/uploads\/2016\/10\/Circle-of-learning.png\" alt=\"circle-of-learning\" width=\"690\" height=\"400\" class=\"aligncenter size-full wp-image-3985\" srcset=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Circle-of-learning.png 690w, https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/Circle-of-learning-600x348.png 600w\" sizes=\"auto, (max-width: 690px) 100vw, 690px\" \/><\/p>\n<ol class=\"pageWrap pageWrap--s list list--ordered marginBottom-l lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">\n<li><em>Excitement phase<\/em>: you alway start here. You have a new idea and start learning things, everything looks promising and you wonder what you can do next. You feel motivated and you\u2019re experimenting with the stuff you know. But you eventually reach a barrier in your knowledge.<\/li>\n<li><em>Struggle phase<\/em>: as you encounter the first real problem your excitement and motivation levels start to plummet. You have no idea what could help you or what to search for. You are desperate: even checking out the 3rd results page in Google for an answer.<\/li>\n<li><em>Solution phase<\/em>: Finally! You find the solution to that nasty problem. You move faster than before, and start to feel excited and motivated again. You go back to phase 1.<\/li>\n<\/ol>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">So next time you start out, remember: the struggle phase might be long and frustrating but the solution is out there. Finding it is part of the fun.<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\">And don\u2019t forget to <a class=\"link link--blue fontWeight-4\"href=\"http:\/\/gagetapp.com\/osx\/\" target=\"_blank\">check out GAget<\/a> \u263a<\/p>\n<p class=\"pageWrap pageWrap--s marginBottom-m paddingBottom-s c-slate lineHeight-l fontSize-l fontWeight-3 breakPointM-fontSize-xl breakPointM-lineHeight-xl\"><em>This post was originally published on <a class=\"link link--blue fontWeight-4\"href=\"https:\/\/medium.com\/ios-os-x-development\/how-i-a-designer-learned-to-code-and-released-an-app-in-4-months-219d7c1b8df1#.rtg5objcw\" target=\"_blank\">Zolt\u00e1n's Medium Profile<\/a>.<\/em> <\/p>\n","protected":false},"excerpt":{"rendered":"<p>Okay, I\u2019ll be honest with you right away. The title is a little misleading. I started learning Swift 4 months ago and I knew some coding before that. But I have never created a native app for any platform. Thinking about it now, I had no idea what I was up against\u2026 For you to understand the how I did&#8230; <a class=\"link link--blue fontWeight-4\" href=\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/\">Read More &#65515;<\/a><\/p>\n","protected":false},"author":52,"featured_media":3987,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[11],"tags":[],"class_list":["post-3968","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-viewpoint"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v15.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<meta name=\"description\" content=\"With a curiosity to fulfil, no existing solution appealing enough &amp; an ability to design Zoltan learnt Swift and set out to create one.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"How I, a designer, learned to code and released an app in 4 months\" \/>\n<meta property=\"og:description\" content=\"With a curiosity to fulfil, no existing solution appealing enough &amp; an ability to design Zoltan learnt Swift and set out to create one.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/\" \/>\n<meta property=\"og:site_name\" content=\"Marvel Blog\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/marvelapp\" \/>\n<meta property=\"article:published_time\" content=\"2016-10-19T22:41:19+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2016-10-23T20:58:18+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/gaget_header-1500x871.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1500\" \/>\n\t<meta property=\"og:image:height\" content=\"871\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:site\" content=\"@marvelapp\" \/>\n<meta name=\"twitter:label1\" content=\"Est. reading time\">\n\t<meta name=\"twitter:data1\" content=\"7 minutes\">\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Organization\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\",\"name\":\"Marvel\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"sameAs\":[\"https:\/\/www.facebook.com\/marvelapp\",\"https:\/\/www.instagram.com\/marvelapp\/\",\"https:\/\/www.linkedin.com\/company\/marvel-app\/\",\"https:\/\/twitter.com\/marvelapp\"],\"logo\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2018\/06\/Logo-Light.png\",\"width\":1605,\"height\":1130,\"caption\":\"Marvel\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#logo\"}},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\",\"url\":\"https:\/\/marvelapp.com\/blog\/\",\"name\":\"Marvel Blog\",\"description\":\"Ideas and words on user experience, design, collaboration and more\",\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":\"https:\/\/marvelapp.com\/blog\/?s={search_term_string}\",\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"en-GB\"},{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#primaryimage\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/marvelapp.com\/wp-content\/uploads\/2016\/10\/gaget_header.png\",\"width\":1929,\"height\":1120,\"caption\":\"learned to code\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#webpage\",\"url\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/\",\"name\":\"How I, a designer, learned to code and released an app in 4 months\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#primaryimage\"},\"datePublished\":\"2016-10-19T22:41:19+00:00\",\"dateModified\":\"2016-10-23T20:58:18+00:00\",\"description\":\"With a curiosity to fulfil, no existing solution appealing enough & an ability to design Zoltan learnt Swift and set out to create one.\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/\"]}]},{\"@type\":\"Article\",\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#webpage\"},\"author\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/2d7297aa47d3e8edcfff5690bfc99267\"},\"headline\":\"How I, a designer, learned to code and released an app in 4 months\",\"datePublished\":\"2016-10-19T22:41:19+00:00\",\"dateModified\":\"2016-10-23T20:58:18+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#webpage\"},\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/#organization\"},\"image\":{\"@id\":\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#primaryimage\"},\"articleSection\":\"Viewpoint\",\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/marvelapp.com\/blog\/designer-learned-to-code-and-released-an-app-in-4-months\/#respond\"]}]},{\"@type\":\"Person\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#\/schema\/person\/2d7297aa47d3e8edcfff5690bfc99267\",\"name\":\"Zolt\\u00e1n Hossz\\u00fa\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\/\/marvelapp.com\/blog\/#personlogo\",\"inLanguage\":\"en-GB\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/7cb4e4047836cdefe9209ec0ee2353594fb9399ebd6df852798a32b7d6a25e3e?s=96&d=mm&r=g\",\"caption\":\"Zolt\\u00e1n Hossz\\u00fa\"},\"description\":\"Creator, UI Designer at @Ustream and IBM company. Previously made @GAget_app &amp; @MoveRiteApp. Follow me on Twitter.\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","_links":{"self":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/3968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/users\/52"}],"replies":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/comments?post=3968"}],"version-history":[{"count":0,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/posts\/3968\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media\/3987"}],"wp:attachment":[{"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/media?parent=3968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/categories?post=3968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/marvelapp.com\/blog\/wp-json\/wp\/v2\/tags?post=3968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}