[{"content":" Why? All my images and video end up in my iCloud Photos library and on a regular basis I want to be able to present the latest additions to friends and family via mirroring to a TV. While this is already possible via the Photos app, I don\u0026rsquo;t like having to swipe between images and especially I dislike that this is also the transition shown on the TV. I basically just want simple navigation via fairly large buttons and a nice fade transition.\nFeatures You get to choose the media to be presented via the standard Photos Picker and can either navigate the presentation via simple forward and back buttons or use autoplay with a defined interval. Screen mirroring needs to be setup outside the app via the control panel as this is not something that can be controlled from within an app. Alternatively an external display can be connected. Videos will start playback automatically, live photos will not but a play button is available.\nApp Store or not? After implementing it to a degree that it worked well for my own usage the next question was whether to put it on the store. It was never meant (or suited) to be a paid app so that in itself is not a motivation but I guess that ever since the iOS App Store arrived, I\u0026rsquo;ve been thinking that surely I\u0026rsquo;ll put something up there in my own name one of these days. For a long time that did not happen, mainly due to prioritizing other stuff for my free time while having a day job that was all about coding. And initially after my retirement I wasn\u0026rsquo;t really that drawn to writing code - during the first 6 months it amounted to something like a 10 line shell script. But I decided that now is the time even though it does mean quite a bit of additional work. Not only preparing descriptions, meta data and screen shots for the store but also you need to provide links to a support page and a privacy policy, something that actually lead me to acquire this domain and set up a site. And of course there\u0026rsquo;s a lot of additional polishing to do when it\u0026rsquo;s suddenly meant for a broader audience but even for my own usage it\u0026rsquo;s nice to get rid of the rough edges.\nIf a tree falls in a forest… As of this writing it has been more than a month since publishing, during which time I on purpose did not really tell anybody about it being available, just to check whether among the more than a 1.5 billion active iPhone users anybody would actually find it through regular App Store search. And as suspected basically nobody did - there\u0026rsquo;s been a total of 4 downloads, 2 immediately after publishing and another 2 right after making a small change in the screen shots, so most likely that probably wasn\u0026rsquo;t even done by real human beings. A total of 12 product page impressions. Obviously, this is not an app that everybody needs, and it might be tricky to set up the right keywords, but I have to conclude that, not surprisingly, App Store search is pretty much broken.\nChallenges For the best privacy experience I selected to use the standard Photos Picker, which means that the app will not need full access to the Photos library. This does bring a few limitations - for instance as this rules out access to any meta data, sorting by capture date is just not possible. Also there\u0026rsquo;s no simple way to select a full collection, this needs to be done via swipe selection which some users will not even know is a thing. Therefore the somewhat unfortunate need for an info panel in the app. Being based on SwiftUI you may think that obtaining the simple fade transition between images would be trivial - I can reveal that this is not the case at all. Also both video and live photo handling ended up needing embedded UIKit views. An annoyance that I currently can\u0026rsquo;t avoid is that after use a relaunch may trigger a system prompt to start AirPlay to the last device used for mirroring. Seems like a great feature but it only works for AirPlay streaming and has no effect in regards to mirroring.\nOverall I had fun implementing this and can now enjoy a nicely polished app for my own usage while still hoping that a few others might also benefit. I\u0026rsquo;ll possibly consider a few additional features, the most obvious one being pinch to zoom. Also crossing my fingers for Photos Picker improvements being announced at the upcoming WWDC.\n","permalink":"https://carstengp.dk/posts/mirrorthis/","summary":"And it\u0026rsquo;s on the App Store","title":"I made an app called Mirror This"},{"content":"As far as creating social media content the sad decline of Twitter pretty much stopped my activity except for a few Instagram posts now and then. I always liked the concept of self hosted blogs but never really got around to setting things up. For other reasons I found the need for a \u0026ldquo;self centered\u0026rdquo; domain, therefore now seems like a good time to give it a try. Don\u0026rsquo;t expect heavy traffic but I do hope to sprinkle some posts related to topics like these:\nNature Photography Music Mac and iOS development Disc golf Random stuff ","permalink":"https://carstengp.dk/posts/initial/","summary":"The very first entry","title":"Welcome"},{"content":"This privacy policy applies to the Mirror This app (hereby referred to as \u0026ldquo;Application\u0026rdquo;) for mobile devices that was created by Carsten G. Pedersen (hereby referred to as \u0026ldquo;Service Provider\u0026rdquo;) as a Free service. This service is intended for use \u0026ldquo;AS IS\u0026rdquo;.\nInformation Collection and Use\nThe Application collects information when you download and use it. This information may include information such as\nYour device\u0026rsquo;s Internet Protocol address (e.g. IP address) The pages of the Application that you visit, the time and date of your visit, the time spent on those pages The time spent on the Application The operating system you use on your mobile device The Application does not gather precise information about the location of your mobile device.\nThe Application does not use Artificial Intelligence (AI) technologies to process your data or provide features.\nThe Service Provider may use the information you provided to contact you from time to time to provide you with important information, required notices and marketing promotions.\nFor a better experience, while using the Application, the Service Provider may require you to provide us with certain personally identifiable information. The information that the Service Provider request will be retained by them and used as described in this privacy policy.\nThird Party Access\nOnly aggregated, anonymized data is periodically transmitted to external services to aid the Service Provider in improving the Application and their service. The Service Provider may share your information with third parties in the ways that are described in this privacy statement.\nThe Service Provider may disclose User Provided and Automatically Collected Information:\nas required by law, such as to comply with a subpoena, or similar legal process; when they believe in good faith that disclosure is necessary to protect their rights, protect your safety or the safety of others, investigate fraud, or respond to a government request; with their trusted services providers who work on their behalf, do not have an independent use of the information we disclose to them, and have agreed to adhere to the rules set forth in this privacy statement. Opt-Out Rights\nYou can stop all collection of information by the Application easily by uninstalling it. You may use the standard uninstall processes as may be available as part of your mobile device or via the mobile application marketplace or network.\nData Retention Policy\nThe Service Provider will retain User Provided data for as long as you use the Application and for a reasonable time thereafter. If you\u0026rsquo;d like them to delete User Provided Data that you have provided via the Application, please contact them at carstengp@icloud.com and they will respond in a reasonable time.\nChildren\nThe Service Provider does not use the Application to knowingly solicit data from or market to children under the age of 13.\nThe Service Provider does not knowingly collect personally identifiable information from children. The Service Provider encourages all children to never submit any personally identifiable information through the Application and/or Services. The Service Provider encourage parents and legal guardians to monitor their children\u0026rsquo;s Internet usage and to help enforce this Policy by instructing their children never to provide personally identifiable information through the Application and/or Services without their permission. If you have reason to believe that a child has provided personally identifiable information to the Service Provider through the Application and/or Services, please contact the Service Provider (carstengp@icloud.com) so that they will be able to take the necessary actions. You must also be at least 16 years of age to consent to the processing of your personally identifiable information in your country (in some countries we may allow your parent or guardian to do so on your behalf).\nSecurity\nThe Service Provider is concerned about safeguarding the confidentiality of your information. The Service Provider provides physical, electronic, and procedural safeguards to protect information the Service Provider processes and maintains.\nChanges\nThis Privacy Policy may be updated from time to time for any reason. The Service Provider will notify you of any changes to the Privacy Policy by updating this page with the new Privacy Policy. You are advised to consult this Privacy Policy regularly for any changes, as continued use is deemed approval of all changes.\nThis privacy policy is effective as of 2026-04-04\nYour Consent\nBy using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by us.\nContact Us\nIf you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at carstengp@icloud.com.\nThis privacy policy page was generated by App Privacy Policy Generator\n","permalink":"https://carstengp.dk/apps/privacy/","summary":"\u003cp\u003eThis privacy policy applies to the Mirror This app (hereby referred to as \u0026ldquo;Application\u0026rdquo;) for mobile devices that was created by Carsten G. Pedersen (hereby referred to as \u0026ldquo;Service Provider\u0026rdquo;) as a Free service. This service is intended for use \u0026ldquo;AS IS\u0026rdquo;.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eInformation Collection and Use\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eThe Application collects information when you download and use it. This information may include information such as\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eYour device\u0026rsquo;s Internet Protocol address (e.g. IP address)\u003c/li\u003e\n\u003cli\u003eThe pages of the Application that you visit, the time and date of your visit, the time spent on those pages\u003c/li\u003e\n\u003cli\u003eThe time spent on the Application\u003c/li\u003e\n\u003cli\u003eThe operating system you use on your mobile device\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe Application does not gather precise information about the location of your mobile device.\u003c/p\u003e","title":"Privacy Policy"},{"content":"The application makes it easy to present content from your Photos library via screen mirroring or a connected external display. All types of media should be supported and navigation can be done either manually or at fixed time interval.\nSelection of media This is done via the standard Photos Picker which means that the app will not need full access to your Photos library. Images will be presented in the order that they are selected. For presentation of a larger number of items the recommended procedure is to first gather them in an album that is sorted in the desired way. Then use the swipe selection method starting at the top left and dragging all the way down in the left column and if needed add the remaining items of the bottom row one by one.\nActivating mirroring Mirroring via AirPlay needs to be initiated from the iOS control panel. Alternatively you may connect an external display directly to the phone.\nFAQ Launching the app you may get a prompt for starting AirPlay on the device used previously but doing that has no effect It\u0026rsquo;s an iOS feature that currently can\u0026rsquo;t be used by the application, you will need to activate mirroring via the control panel.\nWhy can\u0026rsquo;t I automatically sort selected images by date As part of the privacy protection of the standard Photos Picker meta data is simply not available to the app\nSupport Support contact is carstengp@icloud.com\n","permalink":"https://carstengp.dk/apps/mirror_this/","summary":"\u003cp\u003eThe application makes it easy to present content from your Photos library via screen mirroring or a connected external display. All types of media should be supported and navigation can be done either manually or at fixed time interval.\u003c/p\u003e\n\u003ch3 id=\"selection-of-media\"\u003eSelection of media\u003c/h3\u003e\n\u003cp\u003eThis is done via the standard Photos Picker which means that the app will not need full access to your Photos library. Images will be presented in the order that they are selected. For presentation of a larger number of items the recommended procedure is to first gather them in an album that is sorted in the desired way. Then use the swipe selection method starting at the top left and dragging all the way down in the left column and if needed add the remaining items of the bottom row one by one.\u003c/p\u003e","title":"Mirror This"}]