{"id":2508,"date":"2022-07-10T23:59:37","date_gmt":"2022-07-11T03:59:37","guid":{"rendered":"https:\/\/bitpost.com\/news\/?p=2508"},"modified":"2022-07-10T23:59:43","modified_gmt":"2022-07-11T03:59:43","slug":"create-an-iphone-app-with-login-to-backend","status":"publish","type":"post","link":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/","title":{"rendered":"Create an iPhone app with login to backend"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">My little iPhone app is simple as I can manage (but no less, ha).  SwiftUI is the new way, UIKit is the old way but huge, <a href=\"https:\/\/www.hackingwithswift.com\/books\/ios-swiftui\/instafilter-introduction\" target=\"_blank\" rel=\"noreferrer noopener\">full of history<\/a> &#8211; can I avoid it?  It seems I can.  I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding, cookies, page navigation, etc. all working after the second busy weekend of work.  And away we go!<\/p>\n","protected":false},"excerpt":{"rendered":"<p>My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history &#8211; can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"jetpack_post_was_ever_published":false},"categories":[204],"tags":[202,307],"class_list":["post-2508","post","type-post","status-publish","format-standard","hentry","category-a-better-trader","tag-iphone","tag-swift"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.9 - aioseo.com -->\n\t<meta name=\"description\" content=\"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"m\"\/>\n\t<meta name=\"keywords\" content=\"a better trader\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.9\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"bitpost.com\/news | Note to self\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Create an iPhone app with login to backend | bitpost.com\/news\" \/>\n\t\t<meta property=\"og:description\" content=\"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2022-07-11T03:59:37+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2022-07-11T03:59:43+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Create an iPhone app with login to backend | bitpost.com\/news\" \/>\n\t\t<meta name=\"twitter:description\" content=\"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#article\",\"name\":\"Create an iPhone app with login to backend | bitpost.com\\\/news\",\"headline\":\"Create an iPhone app with login to backend\",\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"},\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#articleImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"},\"datePublished\":\"2022-07-10T23:59:37-04:00\",\"dateModified\":\"2022-07-10T23:59:43-04:00\",\"inLanguage\":\"en-US\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#webpage\"},\"articleSection\":\"A better Trader, iPhone, Swift\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"position\":2,\"name\":\"Projects\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/a-better-trader\\\/#listItem\",\"name\":\"A better Trader\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news#listItem\",\"name\":\"Home\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/a-better-trader\\\/#listItem\",\"position\":3,\"name\":\"A better Trader\",\"item\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/a-better-trader\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#listItem\",\"name\":\"Create an iPhone app with login to backend\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/#listItem\",\"name\":\"Projects\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#listItem\",\"position\":4,\"name\":\"Create an iPhone app with login to backend\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/category\\\/projects\\\/a-better-trader\\\/#listItem\",\"name\":\"A better Trader\"}}]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#personImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/\",\"name\":\"m\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg\",\"width\":96,\"height\":96,\"caption\":\"m\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#webpage\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/\",\"name\":\"Create an iPhone app with login to backend | bitpost.com\\\/news\",\"description\":\"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/2022\\\/create-an-iphone-app-with-login-to-backend\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/author\\\/m\\\/#author\"},\"datePublished\":\"2022-07-10T23:59:37-04:00\",\"dateModified\":\"2022-07-10T23:59:43-04:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#website\",\"url\":\"https:\\\/\\\/bitpost.com\\\/news\\\/\",\"name\":\"bitpost.com\\\/news\",\"description\":\"Note to self\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/bitpost.com\\\/news\\\/#person\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Create an iPhone app with login to backend | bitpost.com\/news","description":"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,","canonical_url":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/","robots":"max-image-preview:large","keywords":"a better trader","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#article","name":"Create an iPhone app with login to backend | bitpost.com\/news","headline":"Create an iPhone app with login to backend","author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"},"image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#articleImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"},"datePublished":"2022-07-10T23:59:37-04:00","dateModified":"2022-07-10T23:59:43-04:00","inLanguage":"en-US","mainEntityOfPage":{"@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#webpage"},"isPartOf":{"@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#webpage"},"articleSection":"A better Trader, iPhone, Swift"},{"@type":"BreadcrumbList","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","position":1,"name":"Home","item":"https:\/\/bitpost.com\/news","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","position":2,"name":"Projects","item":"https:\/\/bitpost.com\/news\/category\/projects\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/a-better-trader\/#listItem","name":"A better Trader"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news#listItem","name":"Home"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/a-better-trader\/#listItem","position":3,"name":"A better Trader","item":"https:\/\/bitpost.com\/news\/category\/projects\/a-better-trader\/","nextItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#listItem","name":"Create an iPhone app with login to backend"},"previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/#listItem","name":"Projects"}},{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#listItem","position":4,"name":"Create an iPhone app with login to backend","previousItem":{"@type":"ListItem","@id":"https:\/\/bitpost.com\/news\/category\/projects\/a-better-trader\/#listItem","name":"A better Trader"}}]},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/#person","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#personImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"Person","@id":"https:\/\/bitpost.com\/news\/author\/m\/#author","url":"https:\/\/bitpost.com\/news\/author\/m\/","name":"m","image":{"@type":"ImageObject","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/884c1dbbf1027f261dbf20652687af7ad0030bfa71ff0ef56540938bdc70be2f?s=96&d=monsterid&r=pg","width":96,"height":96,"caption":"m"}},{"@type":"WebPage","@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#webpage","url":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/","name":"Create an iPhone app with login to backend | bitpost.com\/news","description":"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/bitpost.com\/news\/#website"},"breadcrumb":{"@id":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/#breadcrumblist"},"author":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"creator":{"@id":"https:\/\/bitpost.com\/news\/author\/m\/#author"},"datePublished":"2022-07-10T23:59:37-04:00","dateModified":"2022-07-10T23:59:43-04:00"},{"@type":"WebSite","@id":"https:\/\/bitpost.com\/news\/#website","url":"https:\/\/bitpost.com\/news\/","name":"bitpost.com\/news","description":"Note to self","inLanguage":"en-US","publisher":{"@id":"https:\/\/bitpost.com\/news\/#person"}}]},"og:locale":"en_US","og:site_name":"bitpost.com\/news | Note to self","og:type":"article","og:title":"Create an iPhone app with login to backend | bitpost.com\/news","og:description":"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,","og:url":"https:\/\/bitpost.com\/news\/2022\/create-an-iphone-app-with-login-to-backend\/","article:published_time":"2022-07-11T03:59:37+00:00","article:modified_time":"2022-07-11T03:59:43+00:00","twitter:card":"summary","twitter:title":"Create an iPhone app with login to backend | bitpost.com\/news","twitter:description":"My little iPhone app is simple as I can manage (but no less, ha). SwiftUI is the new way, UIKit is the old way but huge, full of history - can I avoid it? It seems I can. I have login and logout, environment state across pages, tab views, REST API calls with JSON decoding,"},"aioseo_meta_data":{"post_id":"2508","title":null,"description":null,"keywords":[],"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":[],"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":"{\"article\":{\"articleType\":\"BlogPosting\"},\"course\":{\"name\":\"\",\"description\":\"\",\"provider\":\"\"},\"faq\":{\"pages\":[]},\"product\":{\"reviews\":[]},\"recipe\":{\"ingredients\":[],\"instructions\":[],\"keywords\":[]},\"software\":{\"reviews\":[],\"operatingSystems\":[]},\"webPage\":{\"webPageType\":\"WebPage\"}}","pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2022-07-07 14:31:56","updated":"2025-08-17 19:20:48","seo_analyzer_scan_date":null},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p9M11L-Es","jetpack_likes_enabled":true,"_links":{"self":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2508","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/comments?post=2508"}],"version-history":[{"count":2,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2508\/revisions"}],"predecessor-version":[{"id":2513,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/posts\/2508\/revisions\/2513"}],"wp:attachment":[{"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/media?parent=2508"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/categories?post=2508"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bitpost.com\/news\/wp-json\/wp\/v2\/tags?post=2508"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}