{"id":2285,"date":"2014-09-01T20:00:43","date_gmt":"2014-09-01T08:00:43","guid":{"rendered":"https:\/\/www.deltics.co.nz\/blog\/?p=2285"},"modified":"2014-09-01T21:00:11","modified_gmt":"2014-09-01T09:00:11","slug":"while-i-was-waiting-for-apple","status":"publish","type":"post","link":"https:\/\/www.deltics.co.nz\/blog\/posts\/2285\/","title":{"rendered":"While I Was Waiting For Apple&#8230;"},"content":{"rendered":"<span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">4<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span><p>So Saturday morning I finished the <strong>iOS<\/strong> version of my application and published it to the <strong>App Store<\/strong>.  Of all of the app stores, the approval process with Apple evidently takes the longest.  So, whilst waiting for my app to be released, I developed (and published) the <strong>Windows Phone<\/strong> version of my app.<\/p>\n<p><!--more--><\/p>\n<p>There really isn&#8217;t much to say about the implementation of the <strong>Windows Phone<\/strong> version, other than to mention that the platform again behaves differently to either <strong>Android<\/strong> or <strong>iOS<\/strong> platforms in even this simple area (sending a TXT message).<\/p>\n<p>I can&#8217;t recall where I got the impression that <strong>Windows Phone<\/strong> allowed direct sending of SMS messages from code, as I previously suggested.  In any event, I  was wrong.  <strong>Windows Phone<\/strong> is more similar to <strong>iOS<\/strong> in this area, but contrives again to be different.<\/p>\n<p>On <strong>Windows Phone<\/strong>, just as with <strong>iOS<\/strong>, you cannot send an SMS message directly.  All you can do is pre-populate an SMS message with a recipient (or recipients) and the body of the message to be sent.  On <strong>iOS<\/strong> you then present a built-in view for the user to modify or complete the message or, in the case of my app, to simply confirm that the message should be sent.<\/p>\n<p>The app is then notified either if the user cancels the message or of the successful sending of the message (or any failure in attempting to send it).<\/p>\n<p>Given that Windows Phone also only allows pre-filling a message, the initial steps in this process on <strong>Windows Phone<\/strong> involve very similar code to that for iOS:<\/p>\n<pre class=\"brush: oxygene; title: ; notranslate\" title=\"\">\r\n    var sms := new SmsComposeTask;\r\n\r\n    sms.To    := '7275';\r\n    sms.Body  := Digits.Code;\r\n    sms.Show;\r\n<\/pre>\n<p>On <strong>Windows Phone<\/strong>, the framework class that provides the SMS UI is <strong>SmsComposeTask<\/strong>.  I set the recipient and the body of the message and then show the UI.<\/p>\n<p>So far, so much like <strong>iOS<\/strong>.<\/p>\n<p>Where <strong>Windows Phone<\/strong> then charts its own course is in the fact that once the UI is presented, the user actually finds themselves not in a specialised &#8220;<em>Confirm Sending This Message<\/em>&#8221; UI, but simply in what is effect a conversation in the SMS application, albeit with the initial message ready to send.<\/p>\n<p>There is no mechanism for the user to &#8220;<em>Cancel<\/em>&#8221; the message in a way that is notified to the calling task.<\/p>\n<p>If the user <em>does<\/em> send the message then they remain in the SMS conversation with the recipient.<\/p>\n<p>In either event the application that filled in the SMS message has <em>no idea what just happened<\/em> (or when).  The user will either back out of the SMS UI to the <strong>TXT-2-PARK<\/strong> UI, or will hit the Windows <strong>Home<\/strong> key to return to the phone start tiles.<\/p>\n<p>But, even with these differences, the application is still more convenient to use than having to fumble around with the SMS app from the start, just to send a numeric code to pay for parking.<\/p>\n<p>And at the very least, the process of publishing to the <strong>Windows Phone Store<\/strong> was very slick.  Within about 45 minutes my app was approved and &#8211; I was told &#8211; listed, although it then seemed to wake a while for the listing to propagate to the store itself.<\/p>\n<p>So, here&#8217;s my latest release app offering:<\/p>\n<p><a href=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/screen-31.png?ssl=1\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/screen-31.png?resize=180%2C300&#038;ssl=1\" alt=\"Windows Phone\" width=\"180\" height=\"300\" class=\"aligncenter size-medium wp-image-2288\" srcset=\"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/screen-31.png?resize=180%2C300&amp;ssl=1 180w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/screen-31.png?resize=614%2C1024&amp;ssl=1 614w, https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/screen-31.png?w=768&amp;ssl=1 768w\" sizes=\"(max-width: 180px) 100vw, 180px\" data-recalc-dims=\"1\" \/><\/a><\/p>\n<p><a href=\"http:\/\/www.windowsphone.com\/en-nz\/store\/app\/txt-2-park-free\/6054a38d-3156-4d2e-ace1-fa1a5095ee08\">The Windows Phone Store listing is here<\/a>.<\/p>\n<h2>Size Doesn&#8217;t Matter (except when it does)<\/h2>\n<p>The <strong>Windows Phone<\/strong> app size is reported in the store as &#8220;< 1MB\" and I can tell you that the actual XAP file is around 60 KB.  This is almost <em>3x the size of the Android<\/em> version, but where the Android version contains only different sized icons for the app, the <strong>Windows Phone<\/strong> version also incorporates images for iconic tiles of different dimensions (small and medium are supported by my app).<\/p>\n<p>In my previous post I mentioned that the <strong>iOS<\/strong> version was <em>almost 2 MB in size<\/em>, making it the heftiest version by a massive margin.  In the comments Marc Hoffman of RO expressed surprise at this.   Based on his comments I checked my launch image sizes and found that they were accounting for about 1.7 MB of the overall app size (!!!!!).<\/p>\n<p>After removing some gradient effects and opting for a much plainer set of images, the <strong>iOS<\/strong> version is now much, <em>much<\/em> smaller at just 410 KB for the IPA file.<\/p>\n<p>To give some idea of how much space those launch images still account for, the PNG files for the launch images that go into that IPA start out at 470 KB on their own (and that&#8217;s after being run through <strong>imagOptim<\/strong>, as Marc suggested).  So the vast majority of that 410 KB file is <strong>still<\/strong> accounted for by those launch images.<\/p>\n<p>So, with the grunt work of getting my app written and published in all three app stores (Android, iOS <strong>and<\/strong> Windows Phone) done, in the next few posts I shall discuss some of the aspects of developing for the various platforms using Oxygene that this exercise has exposed me to.<\/p>\n<p>Needless to say, I have learned a great deal about each of the 3 platforms.<\/p>\n","protected":false},"excerpt":{"rendered":"<p><span class=\"rt-reading-time\" style=\"display: block;\"><span class=\"rt-label rt-prefix\">[Estimated Reading Time: <\/span> <span class=\"rt-time\">4<\/span> <span class=\"rt-label rt-postfix\">minutes]<\/span><\/span> So Saturday morning I finished the iOS version of my application and published it to the App Store. Of all of the app stores, the approval process with Apple evidently takes the longest. So, whilst waiting for my app to be released, I developed (and published) the Windows Phone version of my app.<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"jetpack_publicize_message":"","jetpack_is_tweetstorm":false,"jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":[]},"categories":[212,205,4,242,213,204,180,283],"tags":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p1TKYv-AR","jetpack_sharing_enabled":true,"jetpack-related-posts":[{"id":2280,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2280\/","url_meta":{"origin":2285,"position":0},"title":"Oxygene Constructor Magic on Cocoa","date":"30 Aug 2014","format":false,"excerpt":"Earlier this week I mentioned that I had published my TXT-2-PARK app for Android in the Google Play Store. Today I published the iOS version to the Apple App Store (still awaiting approval at this stage). As with the Android version, I implemented the iOS version using Oxygene, and things\u2026","rel":"","context":"In &quot;Android&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1910,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1910\/","url_meta":{"origin":2285,"position":1},"title":"What&#8217;s In a Number .. ?","date":"16 Oct 2013","format":false,"excerpt":"Last week I picked up a Nokia 520 Windows Phone for what I consider to be an absolute bargain price (well under the NZ$299 RRP) specifically as a development handset to allow me to explore the Windows Phone support offered by Oxygene. I've only just started down this road but\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Screen-Shot-2013-10-15-at-14.38.41.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":2274,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2274\/","url_meta":{"origin":2285,"position":2},"title":"Small Post, for a (Very) Small App","date":"25 Aug 2014","format":false,"excerpt":"On Saturday I was out and about with my family and found myself inspired to write an app. By Sunday evening, it was done and in the Google Play store. We were in an area of Auckland called Parnell and needed to park the car on street, where a fairly\u2026","rel":"","context":"In &quot;Android&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1562,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1562\/","url_meta":{"origin":2285,"position":3},"title":"A Shaggy Dog Goes for a Breath of Fresh Air","date":"12 Sep 2013","format":false,"excerpt":"It has been a frustrating week for me in some regards. It all started with the news of Microsoft acquiring Nokia. At first I paid it no real attention. I have never had a Windows Phone and my few experiences of Windows on any sort of mobile or handheld device\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"","src":"https:\/\/i0.wp.com\/pc-museum.com\/gallery\/rcm-047-big.jpg?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":2296,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/2296\/","url_meta":{"origin":2285,"position":4},"title":"Sign Here Please&#8230; (Using This Specific Pen)","date":"01 Sep 2014","format":false,"excerpt":"My original Android version of TXT-2-PARK has been in the Google Play Store for a little over a week now. But it was only on Saturday that I decided to install the release version onto my phone from the store itself, and found a problem. The application would download just\u2026","rel":"","context":"In &quot;Android&quot;","img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":1525,"url":"https:\/\/www.deltics.co.nz\/blog\/posts\/1525\/","url_meta":{"origin":2285,"position":5},"title":"RAD Studio in Auckland \/ Android in a VM \/ Touchy Feely","date":"30 Aug 2013","format":false,"excerpt":"Well, not really RAD Studio as such, more like Mobile Studio (whether as part of RAD Studio Ent+ or the Mobile Add-On) since everything shown was oriented around the Android support and emphasising the fact that an application written for iOS can simply be recompiled and will run on Android.\u2026","rel":"","context":"In &quot;Delphi&quot;","img":{"alt_text":"Androidx86","src":"https:\/\/i0.wp.com\/www.deltics.co.nz\/blog\/wp-content\/uploads\/Androidx86-1024x608.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2285"}],"collection":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/comments?post=2285"}],"version-history":[{"count":7,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2285\/revisions"}],"predecessor-version":[{"id":2295,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/posts\/2285\/revisions\/2295"}],"wp:attachment":[{"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/media?parent=2285"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/categories?post=2285"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.deltics.co.nz\/blog\/wp-json\/wp\/v2\/tags?post=2285"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}