<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sven Hanold &#8211; Apps4Selfhosted</title>
	<atom:link href="https://apps.hanold.info/author/zven/feed/" rel="self" type="application/rss+xml" />
	<link>https://apps.hanold.info</link>
	<description>Apps für Selfhoster</description>
	<lastBuildDate>Fri, 22 May 2026 08:55:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0</generator>

<image>
	<url>https://apps.hanold.info/wp-content/uploads/2026/04/favicon-512-150x150.png</url>
	<title>Sven Hanold &#8211; Apps4Selfhosted</title>
	<link>https://apps.hanold.info</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Mobile MA 1.7.1: Rooms, Lyrics and a Tidier Setup</title>
		<link>https://apps.hanold.info/mobilema-en/mobile-ma-1-7-1-rooms-lyrics-and-a-tidier-setup/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Mon, 04 May 2026 17:32:02 +0000</pubDate>
				<category><![CDATA[Mobile MA]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/?p=183</guid>

					<description><![CDATA[Rooms, lyrics, and a tidier settings page – Mobile MA 1.7.1 brings two long-requested features and smooths out a few rough edges.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Sometimes it&#8217;s not the grand new feature that makes daily life better — it&#8217;s the tidying up. Mobile MA 1.7.1 is exactly that kind of release: two new features I&#8217;ve wanted for a while, and a handful of corners that are finally smoothed out.</p>



<h2 id="rooms-speakers-where-they-belong" class="wp-block-heading">Rooms — speakers where they belong</h2>



<p class="wp-block-paragraph">Once you have a few speakers around the house, the &#8220;All&#8221; list gets messy fast. Kitchen, living room, bathroom, kids&#8217; room — at some point you spend more time finding the right speaker than the right song.</p>



<p class="wp-block-paragraph">1.7.1 introduces <strong>Rooms</strong>. You create a group — &#8220;Kitchen&#8221;, &#8220;Ground Floor&#8221;, &#8220;Kids&#8217; Room&#8221; or whatever makes sense for you — and assign your speakers to it. From then on, you start playback right in the room: one tap, and every speaker in that group plays in sync, with matched volume. Mobile MA handles the grouping inside Music Assistant in the background.</p>



<p class="wp-block-paragraph">The speaker view now has a new &#8220;Rooms&#8221; tab next to &#8220;All&#8221;. The first time you open it, a short intro screen pops up — to make clear that &#8220;Rooms&#8221; can be more than just rooms: floors, zones, themes, whatever you like.</p>



<h2 id="lyrics-finally-on-screen" class="wp-block-heading">Lyrics — finally on screen</h2>



<p class="wp-block-paragraph">I teased it in 1.7, and here it is: <strong>lyrics.</strong> When a song has lyrics available, the player shows them — readable, scrolling, line by line.</p>



<p class="wp-block-paragraph">This is powered by <a href="https://lrclib.net" target="_blank" rel="noopener">LRCLIB</a>, an open lyrics database. If you&#8217;d rather not use it, you can simply turn LRCLIB off in Settings — and nothing gets requested.</p>



<p class="wp-block-paragraph">One detail I particularly like: lyrics that Mobile MA fetches from LRCLIB are <strong>written back to Music Assistant automatically</strong>. Pull once, available everywhere — even next time you listen on the Sonos in the living room.</p>



<h2 id="from-artist-into-album-no-detour" class="wp-block-heading">From artist into album — no detour</h2>



<p class="wp-block-paragraph">A small but, for me, important improvement: when you tap an artist in your library and open one of their albums, Mobile MA now loads the <strong>full album</strong> — not just the tracks by that one artist. The artist&#8217;s tracks are highlighted, all others dimmed. So you see features, collaborations, and the full album context — without an extra tap.</p>



<h2 id="settings-tidied-up" class="wp-block-heading">Settings, tidied up</h2>



<p class="wp-block-paragraph">The Settings dialog had grown over the last few versions — and was looking a bit wild. I&#8217;ve trimmed it down to a maximum of five sections, grouped sensibly, and added a few new switches along the way: LRCLIB on/off, plus a developer menu with the version number and diagnostic options.</p>



<p class="wp-block-paragraph">The &#8220;About Mobile MA&#8221; section also now lists every framework Mobile MA uses, along with its license. Transparency, because it matters.</p>



<h2 id="two-bugs-that-really-were-annoying" class="wp-block-heading">Two bugs that really were annoying</h2>



<ul class="wp-block-list">
<li><strong>Local playback</strong> used to stutter briefly whenever the speaker list refreshed. In 1.7.1 the two are decoupled — refresh runs, music keeps playing.</li>



<li>The <strong>Live Activity</strong> (and the indicator in the Dynamic Island) sometimes stuck around long after the music had stopped. Fixed: when the music stops, the indicator stops too.</li>
</ul>



<h2 id="whats-coming-next" class="wp-block-heading">What&#8217;s coming next</h2>



<p class="wp-block-paragraph">On the list: more comfort features around Rooms, a bit more performance polish in various spots, and a few ideas I&#8217;m not quite ready to share yet. If you have wishes, send them my way.</p>



<p class="wp-block-paragraph">The new version is available on the App Store right now. Have fun with it — and even more music in every room.</p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph"><strong>Version history:</strong><br>
← Previous: <a href="https://apps.hanold.info/mobilema-en/mobile-ma-1-7-your-iphone-becomes-the-speaker/">Mobile MA 1.7 — Your iPhone Becomes the Speaker</a><br>
All versions: <a href="https://apps.hanold.info/category/mobilema-en/">Mobile MA section</a><br>
Help &amp; questions: <a href="https://apps.hanold.info/support-english/">Support form</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mobile MA 1.7: Your iPhone Becomes the Speaker</title>
		<link>https://apps.hanold.info/mobilema-en/mobile-ma-1-7-your-iphone-becomes-the-speaker/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Sun, 26 Apr 2026 17:53:26 +0000</pubDate>
				<category><![CDATA[Mobile MA]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/?p=157</guid>

					<description><![CDATA[With version 1.7, your iPhone itself becomes a speaker — with background playback, auto-reconnect, speaker management and queue editing.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Picture this: you&#8217;re on the balcony. The sun is out, your Wi-Fi just about reaches, and you&#8217;re in the mood for music. Up until now, that meant you needed a Sonos, a Squeezelite client, or a Chromecast device nearby. With Mobile MA alone, the balcony was a silent place.</p>



<p class="wp-block-paragraph">That changes with version 1.7.</p>



<h2 id="your-iphone-as-a-speaker-finally" class="wp-block-heading">Your iPhone as a speaker — finally</h2>



<p class="wp-block-paragraph">The biggest change in 1.7 is also the simplest to explain: <strong>your iPhone itself is now a speaker.</strong> It shows up at the top of your player list, in its own section called &#8220;Local Playback&#8221;. Tap it, hit play, and music comes out of your iPhone speakers — or your AirPods.</p>



<p class="wp-block-paragraph">This works thanks to the Sendspin protocol, which the official <a href="https://music-assistant.io" target="_blank" rel="noopener">Music Assistant</a> app uses too. Your iPhone registers itself with the Music Assistant server, gets its own player ID, and then receives audio data just like any other speaker on your network.</p>



<p class="wp-block-paragraph">That sounds unspectacular, but it&#8217;s a game changer. Mobile MA is finally mobile in the literal sense.</p>



<h2 id="even-with-the-screen-locked" class="wp-block-heading">Even with the screen locked</h2>



<p class="wp-block-paragraph">All of this would only be half as useful if the music stopped the moment you slipped your iPhone into your pocket. So in 1.7, local playback keeps running in the background — with the screen locked, in other apps, while taking a phone call. Exactly the way you know it from Spotify or Apple Music.</p>



<p class="wp-block-paragraph">If you&#8217;d rather not use your iPhone as a speaker (it saves a bit of battery), you can switch the feature off in Settings.</p>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1024" height="687" src="https://apps.hanold.info/wp-content/uploads/2026/04/f02425d2-b820-473b-9324-a97c38dee3a6-1024x687.png" alt="" class="wp-image-159" srcset="https://apps.hanold.info/wp-content/uploads/2026/04/f02425d2-b820-473b-9324-a97c38dee3a6-1024x687.png 1024w, https://apps.hanold.info/wp-content/uploads/2026/04/f02425d2-b820-473b-9324-a97c38dee3a6-300x201.png 300w, https://apps.hanold.info/wp-content/uploads/2026/04/f02425d2-b820-473b-9324-a97c38dee3a6-768x515.png 768w, https://apps.hanold.info/wp-content/uploads/2026/04/f02425d2-b820-473b-9324-a97c38dee3a6.png 1264w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<h2 id="speaker-management-whos-on-whos-off" class="wp-block-heading">Speaker management: who&#8217;s on, who&#8217;s off?</h2>



<p class="wp-block-paragraph">In Mobile MA 1.7, the player view is split into three sections:</p>



<ul class="wp-block-list">
<li><strong>Local Playback</strong> — your iPhone, always at the top.</li>



<li><strong>Active Speakers</strong> — every switched-on, reachable speaker.</li>



<li><strong>Inactive Speakers</strong> — everything that&#8217;s currently off or unreachable.</li>
</ul>



<p class="wp-block-paragraph">The neat part: you can switch any speaker on or off right from the app. Tap the little power icon, confirm, done. And if something goes wrong, you see a toast notification — so no more &#8220;why isn&#8217;t anything happening?&#8221;.</p>



<h2 id="lost-connection-it-comes-back-on-its-own" class="wp-block-heading">Lost connection? It comes back on its own.</h2>



<p class="wp-block-paragraph">Anyone who uses Music Assistant knows the feeling: sometimes the WebSocket connection drops. The router restarts, the Wi-Fi hiccups, you switch between Wi-Fi and LTE. So far, that meant: restart the app.</p>



<p class="wp-block-paragraph">In 1.7, the app reconnects on its own. An orange banner at the top tells you what&#8217;s happening: &#8220;Reconnecting, attempt 2 of …&#8221;. In Settings, a small status indicator shows green, orange or red so you know exactly where you stand. As soon as the connection is back, the app reloads your players automatically — you don&#8217;t have to do a thing.</p>



<h2 id="tidy-up-the-queue-at-last" class="wp-block-heading">Tidy up the queue, at last</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1024" height="687" src="https://apps.hanold.info/wp-content/uploads/2026/04/ba7f9f10-4984-47e0-bc4e-8f42a95685d3-1024x687.png" alt="" class="wp-image-162" srcset="https://apps.hanold.info/wp-content/uploads/2026/04/ba7f9f10-4984-47e0-bc4e-8f42a95685d3-1024x687.png 1024w, https://apps.hanold.info/wp-content/uploads/2026/04/ba7f9f10-4984-47e0-bc4e-8f42a95685d3-300x201.png 300w, https://apps.hanold.info/wp-content/uploads/2026/04/ba7f9f10-4984-47e0-bc4e-8f42a95685d3-768x515.png 768w, https://apps.hanold.info/wp-content/uploads/2026/04/ba7f9f10-4984-47e0-bc4e-8f42a95685d3.png 1264w" sizes="(max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">Small, but long overdue: you can now edit your playback queue. Swipe to delete individual tracks (in the now-playing view) or remove them via the minus button in the Queue tab, and rearrange them with drag-and-drop. Finally.</p>



<h2 id="a-golden-star-for-the-supporters" class="wp-block-heading">A golden star for the supporters</h2>



<p class="wp-block-paragraph">One last thing: the red dot on the Settings tab is gone. Anyone who has supported Mobile MA via the optional tip-jar purchases now sees a small golden star instead. A small gesture, but one that matters to me personally — thank you to everyone keeping this project alive.</p>



<h2 id="what-else-snuck-in" class="wp-block-heading">What else snuck in</h2>



<p class="wp-block-paragraph">A handful of smaller improvements landed in 1.7 as well:</p>



<ul class="wp-block-list">
<li>Your logged-in username now appears directly in Settings — handy to check which account you&#8217;re connected with.</li>



<li>The &#8220;Support Development&#8221; section has moved to the very top of Settings.</li>



<li>A few internal bugs around player synchronisation are gone.</li>
</ul>



<h2 id="whats-coming-next" class="wp-block-heading">What&#8217;s coming next</h2>



<p class="wp-block-paragraph">1.7 is a big release, but I&#8217;m not done yet. On the list for upcoming versions: lyrics support and a few more comfort features for the queue. If you have wishes, send them my way.</p>



<p class="wp-block-paragraph">The new version is available on the App Store right now. Have fun with it — and most importantly, lots of music.</p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph"><strong>Version history:</strong><br>
← Previous: <a href="https://apps.hanold.info/mobilema-en/mobile-ma-1-6-live-activities-and-a-smoother-genre-experience/">Mobile MA 1.6 — Live Activities and a Smoother Genre Experience</a><br>
All versions: <a href="https://apps.hanold.info/category/mobilema-en/">Mobile MA section</a><br>
Help &amp; questions: <a href="https://apps.hanold.info/support-english/">Support form</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mobile MA 1.6: Live Activities and a Smoother Genre Experience</title>
		<link>https://apps.hanold.info/mobilema-en/mobile-ma-1-6-live-activities-and-a-smoother-genre-experience/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Tue, 21 Apr 2026 17:07:55 +0000</pubDate>
				<category><![CDATA[Mobile MA]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/?p=150</guid>

					<description><![CDATA[Version 1.6 brings Live Activities to the Lock Screen and Dynamic Island – and takes the Genres view to a whole new level.]]></description>
										<content:encoded><![CDATA[<p>With version 1.6, Mobile MA takes another step toward becoming a truly iOS-native client for <a href="https://music-assistant.io" target="_blank" rel="noopener">Music Assistant</a>. The update focuses on two main areas: <strong>Live Activities</strong> for system-wide playback visibility, and a significantly improved <strong>Genres view</strong> for browsing large libraries.</p>
<h2>Live Activities: What&#8217;s playing, always in view</h2>
<p>The headline feature is Live Activities. Whenever your home Music Assistant server is playing something, the current track now appears directly on the Lock Screen and in the Dynamic Island – complete with artwork, title, and artist. A quick glance at the iPhone is enough to see what&#8217;s playing – no need to open the app or unlock the device.</p>
<p>This is exactly the kind of integration iOS has offered for years, and which has been missing from self-hosted music setups. If you use Mobile MA throughout the day – kitchen, living room, office – the difference is immediate: the remote becomes invisible, the information stays visible.</p>
<p>Under the hood, the Live Activity respects Mobile MA&#8217;s architecture. No metadata is mirrored to the cloud; nothing leaves your local network. The self-hosted philosophy remains intact, while the app makes full use of the system integration iOS 17 already provides. Technically, Live Activities now live in their own module – clearing the path for future widgets and Home Screen components.</p>
<h2>Genres: A new way through your library</h2>
<p>The second major focus of version 1.6 is genres. In libraries that have grown over years, genres are often the underrated gateway to your own music: you don&#8217;t always know what you want to listen to – but you usually know what mood you&#8217;re in. That&#8217;s exactly where this update aims.</p>
<p>The genre view has been rebuilt from the ground up. Libraries with many or unusually named genres are now grouped cleanly and can be browsed reliably. Subgenres are mapped correctly, duplicates caused by different spellings disappear, and even very large libraries load smoothly.</p>
<p>For users with heterogeneous collections – vinyl rips, purchased albums, streaming integrations via Music Assistant – this is a real gain. Instead of returning to the same few albums or playlists, the reworked genre view invites you to actually rediscover your own library: from hip-hop and jazz through electronic music to niche genres that would otherwise get lost.</p>
<h2>Polish and stability</h2>
<p>Beyond the two focus areas, there has been substantial cleanup under the hood. Test coverage has grown significantly: an extended unit-test suite now protects playback logic, queue handling, and favorites against regressions in future updates. Product identifiers and project structure were adjusted, giving upcoming features a more stable foundation to build on.</p>
<h2>Who should upgrade</h2>
<p>If you&#8217;re already using Mobile MA as a remote for your Music Assistant server, version 1.6 offers the smoothest experience to date. Live Activities turn the app into a silent companion in everyday life, while the reworked genre view opens up your own music collection in a new way.</p>
<p>Version 1.6 is available in the App Store now. Requirements remain iOS 17 and a reachable Music Assistant server on your local network. As always: no third parties, no cloud, no accounts – just your own music, on your own server, controlled from your own iPhone.</p>
<hr />
<p><strong>Version history:</strong><br />
← Previous: <a href="https://apps.hanold.info/mobilema-en/version-1-5-every-speaker-one-tap/">Version 1.5 — Every Speaker, One Tap</a><br />
All versions: <a href="https://apps.hanold.info/category/mobilema-en/">Mobile MA section</a><br />
Help &amp; questions: <a href="https://apps.hanold.info/support-english/">Support form</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Version 1.5: Every Speaker, One Tap</title>
		<link>https://apps.hanold.info/mobilema-en/version-1-5-every-speaker-one-tap/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Mon, 20 Apr 2026 17:51:16 +0000</pubDate>
				<category><![CDATA[Mobile MA]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/?p=145</guid>

					<description><![CDATA[Mobile MA 1.5 brings full speaker group support. Synced players now appear as a unified group card in the player picker, complete with live playback status and real-time album art.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Version 1.5 brings full support for <strong>speaker groups</strong> as defined by <a href="https://music-assistant.io" target="_blank" rel="noopener">Music Assistant</a>&#8216;s sync architecture. If you want music playing across multiple rooms at once, you can now do that directly from the app – no need to open the web interface.</p>



<figure class="wp-block-video alignright"><video height="640" style="aspect-ratio: 296 / 640;" width="296" controls src="https://apps.hanold.info/wp-content/uploads/2026/04/Demo-Grouping-of-Speakers.mov"></video></figure>



<h2 id="speaker-groups-in-the-player-picker" class="wp-block-heading">Speaker Groups in the Player Picker</h2>



<p class="wp-block-paragraph">The player picker has been redesigned from the ground up. Synced players are no longer shown as individual entries. Instead, they appear as a combined <strong>group card</strong> showing the group leader and all its members. The group name is assembled automatically from the participating players, for example &#8220;Living Room + Kitchen + Office&#8221;.</p>



<p class="wp-block-paragraph">Groups are visually distinct from solo players and always appear at the top of the list. A dedicated icon identifies them as a jointly controlled unit. If the group is already playing, the card shows the current track, artist, and a real-time animated playback indicator – just like on individual player cards.</p>



<h2 id="what-else-changed" class="wp-block-heading">What Else Changed</h2>



<ul class="wp-block-list">
<li>Sync members are automatically hidden from the main list while part of an active group</li>



<li>Group state is kept in sync continuously via WebSocket events</li>



<li>The currently playing queue&#8217;s album art appears as a blurred background on the group card</li>



<li>More resilient decoding of player payloads: missing fields like <code>sync_leader</code> and <code>group_childs</code> are now handled gracefully</li>
</ul>



<h2 id="under-the-hood" class="wp-block-heading">Under the Hood</h2>



<p class="wp-block-paragraph">The player model has been extended with <code>syncLeader</code> and <code>groupChilds</code> fields, matching the Music Assistant WebSocket protocol. Based on this, the app automatically determines whether a player acts as a group leader or is a member of a group – without any additional API calls.</p>



<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph">Version 1.5 is available now on the App Store.</p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph"><strong>Version history:</strong><br>
← Previous: <a href="https://apps.hanold.info/mobilema-en/introducing-mobile-ma-native-ios-client-for-music-assistant/">Introducing Mobile MA — Native iOS Client for Music Assistant</a><br>
All versions: <a href="https://apps.hanold.info/category/mobilema-en/">Mobile MA section</a><br>
Help &amp; questions: <a href="https://apps.hanold.info/support-english/">Support form</a></p>
]]></content:encoded>
					
		
		<enclosure url="https://apps.hanold.info/wp-content/uploads/2026/04/Demo-Grouping-of-Speakers.mov" length="3856317" type="video/quicktime" />

			</item>
		<item>
		<title>Introducing Mobile MA – Native iOS Client for Music Assistant</title>
		<link>https://apps.hanold.info/mobilema-en/introducing-mobile-ma-native-ios-client-for-music-assistant/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Wed, 15 Apr 2026 17:40:02 +0000</pubDate>
				<category><![CDATA[Mobile MA]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/?p=140</guid>

					<description><![CDATA[Mobile MA is a native SwiftUI iOS app for self-hosted Music Assistant servers. It offers real-time WebSocket communication, full library browsing, multi-player control, and more.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you&#8217;re running <a href="https://music-assistant.io">Music Assistant</a> on your home server and have been waiting for a proper native iOS client, the wait is over. <strong>Mobile MA</strong> is a SwiftUI-built iPhone app that connects directly to your Music Assistant instance via WebSocket and puts full control of your music library in your pocket.</p>



<h2 class="wp-block-heading" id="what-is-mobile-ma">What is Mobile MA?</h2>



<p class="wp-block-paragraph">Music Assistant is a popular self-hosted music streaming platform that aggregates sources like Navidrome/Subsonic, Apple Music, Spotify, and local filesystems into one unified library. Mobile MA is a dedicated native iOS client for it — built entirely with SwiftUI, with no external dependencies, targeting iOS 17 and above.</p>



<p class="wp-block-paragraph">The app was created by Sven Hanold and first submitted to the App Store in April 2026. It is currently at version 1.4 and actively maintained.</p>



<h2 class="wp-block-heading" id="features-at-a-glance">Features at a Glance</h2>



<h3 class="wp-block-heading" id="library">Library</h3>



<p class="wp-block-paragraph">The Library tab gives you access to your entire music collection, organized into seven sections: Album Artists, Artists, Albums, Playlists, Podcasts, Radio, and Favorites. An alphabetical sidebar on the right lets you jump quickly through large artist or album lists. All data is cached locally on disk, with lazy pagination loading entries in batches of 50. Pull-to-refresh syncs fresh data from the server at any time.</p>



<h3 class="wp-block-heading" id="player-control">Player Control</h3>



<p class="wp-block-paragraph">The Players tab shows all available Music Assistant players as cards, each with a blurred cover art background, a waveform animation when playing, and a Play/Pause button. Tapping a card opens the full <strong>Now Playing view</strong> with transport controls (previous, play/pause, next), a smooth progress bar updated client-side, and a volume slider with mute toggle and ±5 step buttons.</p>



<p class="wp-block-paragraph">Want to play music in multiple rooms in sync? Simply long-press the drag handle on a player card and drop it onto another — Mobile MA will create a <strong>sync group</strong> via the Music Assistant API. Dissolving the group is just one tap on the red ✕ button.</p>



<h3 class="wp-block-heading" id="queue-management">Queue Management</h3>



<p class="wp-block-paragraph">The redesigned Queue view (introduced in v1.4) shows the full playback queue with the current track highlighted and auto-scrolled into view. Tapping any entry jumps directly to that track. Individual tracks can be removed from the queue. Albums and playlists can be played immediately or added to the end of the current queue — if you have multiple players, a player picker sheet lets you choose.</p>



<h3 class="wp-block-heading" id="search">Search</h3>



<p class="wp-block-paragraph">Full-text search across the entire library. Results appear after a brief typing pause and are grouped by type: Artists, Albums, Tracks, Playlists, and Radio stations. Tapping a result navigates directly to the relevant detail page or, for radio, starts playback immediately.</p>



<h3 class="wp-block-heading" id="favorites">Favorites</h3>



<p class="wp-block-paragraph">Any artist, album, or track can be marked as a favorite using the heart icon. The UI updates optimistically and syncs with the server in the background. Since v1.4, a brief toast notification confirms when a favorite is added or removed. All favorites are also accessible via the dedicated Favorites tab in the Library.</p>



<h3 class="wp-block-heading" id="podcasts">Podcasts</h3>



<p class="wp-block-paragraph">Introduced in v1.2, the Podcasts section lists all subscribed podcasts and their episodes directly within the Library. Podcast episode playback is handled through the same player infrastructure as music.</p>



<h2 class="wp-block-heading" id="under-the-hood">Under the Hood</h2>



<p class="wp-block-paragraph">Mobile MA is built on a clean layered architecture using Swift&#8217;s <code>@Observable</code> framework (Swift 5.9). The central <code>MAService</code> object coordinates four sub-managers: authentication (Keychain-backed long-lived tokens), WebSocket communication, player state, and library data with disk cache. All three are injected as SwiftUI environment values — no third-party state management library needed.</p>



<p class="wp-block-paragraph">Image caching uses a custom three-tier system: NSCache (memory LRU) → disk → network. In-App Purchases are handled via StoreKit 2 and offer optional donation tiers (Song, Album, Anthology).</p>



<h2 class="wp-block-heading" id="whats-coming-next">What&#8217;s Coming Next</h2>



<p class="wp-block-paragraph">The roadmap includes several upcoming improvements. In the near term: shuffle and repeat controls, interactive seeking in the progress bar, and direct track playback from search results. Further down the line: an iPad-optimized split-view layout, Lock Screen widgets and Live Activities, queue reordering via drag and drop, a sleep timer, and Siri/App Intents integration. Long-term ideas include multi-server support, an Apple Watch companion app, AirPlay routing, and CarPlay support.</p>



<h2 class="wp-block-heading" id="availability">Availability</h2>



<p class="wp-block-paragraph">Mobile MA is available on the App Store for iPhone. It requires iOS 17 or later and a running Music Assistant server on your local network or accessible via a reverse proxy. The app is free to download; optional donations can be made via In-App Purchase to support continued development.</p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph"><strong>Version history:</strong><br>
All versions and updates: <a href="https://apps.hanold.info/category/mobilema-en/">Mobile MA section</a><br>
Help &amp; questions: <a href="https://apps.hanold.info/support-english/">Support form</a></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>dock-g – The Native iPhone Client for Dockge</title>
		<link>https://apps.hanold.info/dock-g-en/dock-g-the-native-iphone-client-for-dockge/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Sun, 12 Apr 2026 16:54:43 +0000</pubDate>
				<category><![CDATA[dock-g]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/dock-g-en/dock-g-the-native-iphone-client-for-dockge/</guid>

					<description><![CDATA[Running Dockge on your home server and want to check on your stacks from anywhere? dock-g is the native iOS client built exactly for that — manage, monitor, and control your Docker Compose stacks right from your iPhone.]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">If you run Dockge on your home server, you know the situation: you&#8217;re away from your desk but want to quickly check whether a stack is still running — or kick off a restart. That&#8217;s exactly what dock-g is for.</p>



<h2 class="wp-block-heading" id="what-is-dockg">What is dock-g?</h2>



<p class="wp-block-paragraph">dock-g is a native iOS client for <a href="https://dockge.kuma.pet" target="_blank" rel="noopener">Dockge</a> — the popular self-hosted Docker Compose stack manager by Louislam. The app connects directly to your Dockge instance via its WebSocket API and gives you real-time control over all your stacks, right from your iPhone.</p>



<h2 class="wp-block-heading" id="what-can-dockg-do">What can dock-g do?</h2>



<h3 class="wp-block-heading" id="manage-multiple-servers">Manage Multiple Servers</h3>



<p class="wp-block-paragraph">Add as many Dockge servers as you like by URL and credentials. Set a default server for automatic connection on app launch. The connection status is always visible at a glance.</p>



<h3 class="wp-block-heading" id="stack-overview">Stack Overview</h3>



<p class="wp-block-paragraph">The Stacks tab shows all your Docker Compose stacks in a clear, live-updated list — separated into <strong>Running</strong> and <strong>Inactive</strong>. Use the search bar to quickly find any stack by name. Pull to refresh at any time.</p>



<h3 class="wp-block-heading" id="full-stack-control">Full Stack Control</h3>



<p class="wp-block-paragraph">Tap any stack to open its detail view with direct action buttons:</p>



<ul class="wp-block-list">
  <li><strong>Start</strong> — bring a stopped stack back up</li>
  <li><strong>Stop</strong> — halt all containers in the stack</li>
  <li><strong>Restart</strong> — cleanly cycle the stack</li>
  <li><strong>Update</strong> — pull latest images and redeploy</li>
  <li><strong>Down</strong> — stop containers and remove them</li>
  <li><strong>Delete</strong> — remove the stack and all its files</li>
</ul>



<h3 class="wp-block-heading" id="edit-composeyaml-and-env">Edit compose.yaml and .env</h3>



<p class="wp-block-paragraph">Switch into edit mode to modify your <code>compose.yaml</code> or environment variables directly on your iPhone. Save your changes or deploy them straight away — both with a single tap.</p>



<h3 class="wp-block-heading" id="inspect-services">Inspect Services</h3>



<p class="wp-block-paragraph">The Services tab shows the status of each individual container inside a stack, so you always know what&#8217;s running and what isn&#8217;t.</p>



<h3 class="wp-block-heading" id="live-log-streaming">Live Log Streaming</h3>



<p class="wp-block-paragraph">Follow your container logs in real time from the Logs tab. Auto-scroll keeps you at the latest output. The refresh interval (10, 30, or 60 seconds) can be configured in Settings.</p>



<h2 class="wp-block-heading" id="built-for-selfhosters">Built for Self-Hosters</h2>



<p class="wp-block-paragraph">dock-g is designed for people who run their own infrastructure. There are no cloud accounts, no telemetry, and no third-party services involved — the app communicates exclusively with your Dockge server. Dark mode, light mode, and system-adaptive appearance are fully supported.</p>



<h2 class="wp-block-heading" id="availability">Availability</h2>



<p class="wp-block-paragraph">dock-g is available on the <strong>App Store</strong> for iPhone and iPad. A Dockge instance accessible over the network is required.</p>



<p class="wp-block-paragraph"><em>Dockge is a free, open-source application and is not affiliated with dock-g.</em></p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph">More about dock-g and my other apps on the <a href="https://apps.hanold.info/">home page</a>. All dock-g posts in the <a href="https://apps.hanold.info/category/dock-g-en/">dock-g section</a>. Questions or feedback? <a href="https://apps.hanold.info/support-english/">Support form</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>BookStax FAQ – Everything You Need to Know</title>
		<link>https://apps.hanold.info/bookstax-en/bookstax-faq-everything-you-need-to-know/</link>
		
		<dc:creator><![CDATA[Sven Hanold]]></dc:creator>
		<pubDate>Fri, 10 Apr 2026 04:32:06 +0000</pubDate>
				<category><![CDATA[BookStax]]></category>
		<guid isPermaLink="false">https://apps.hanold.info/bookstax/bookstax-faq-everything-you-need-to-know/</guid>

					<description><![CDATA[Got questions about BookStax? Find answers to the most common questions about setup, features, compatibility, and more.]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="general">General</h2>



<h3 class="wp-block-heading" id="what-is-bookstax">What is BookStax?</h3>


<p class="wp-block-paragraph">BookStax is a native iOS app that lets you access and manage your self-hosted <a href="https://www.bookstackapp.com/">BookStack</a> instance directly from your iPhone or iPad. It provides a clean, mobile-first interface for reading, creating, and editing your documentation — wherever you are.</p>



<h3 class="wp-block-heading" id="do-i-need-a-bookstack-account-to-use-bookstax">Do I need a BookStack account to use BookStax?</h3>


<p class="wp-block-paragraph">Yes. BookStax connects to an existing self-hosted BookStack instance. You need a running BookStack server and valid user credentials (or an API token) to log in. BookStax does not provide or host BookStack for you.</p>



<h3 class="wp-block-heading" id="is-bookstax-free">Is BookStax free?</h3>


<p class="wp-block-paragraph">BookStax is available on the App Store. Check the current pricing on the App Store listing. There is no subscription — it&#8217;s a one-time purchase.</p>



<h3 class="wp-block-heading" id="which-platforms-does-bookstax-support">Which platforms does BookStax support?</h3>


<p class="wp-block-paragraph">BookStax is a native SwiftUI app for <strong>iOS and iPadOS</strong>. An iPhone or iPad running iOS 16 or later is required. A macOS version (via Mac Catalyst) is not available at this time.</p>



<hr class="wp-block-separator" />



<h2 class="wp-block-heading" id="setup-amp-connection">Setup &amp; Connection</h2>



<h3 class="wp-block-heading" id="how-do-i-connect-bookstax-to-my-bookstack-server">How do I connect BookStax to my BookStack server?</h3>


<p class="wp-block-paragraph">When you first open BookStax, you&#8217;ll be prompted to enter your BookStack server URL (e.g. <code>https://bookstack.yourdomain.com</code>) along with your API Token ID and Token Secret. You can generate these in your BookStack user profile under <strong>API Tokens</strong>.</p>



<h3 class="wp-block-heading" id="where-do-i-find-my-bookstack-api-token">Where do I find my BookStack API Token?</h3>


<p class="wp-block-paragraph">Log into your BookStack instance, click your profile icon in the top right, go to <strong>Edit Profile</strong>, and scroll down to the <strong>API Tokens</strong> section. Create a new token — BookStax needs both the Token ID and the Token Secret. Store the secret safely, as it won&#8217;t be shown again.</p>



<h3 class="wp-block-heading" id="can-i-connect-to-multiple-bookstack-instances">Can I connect to multiple BookStack instances?</h3>


<p class="wp-block-paragraph">Yes. BookStax supports multiple server profiles. You can add and switch between different BookStack instances from the app settings.</p>



<h3 class="wp-block-heading" id="my-server-uses-a-selfsigned-certificate-will-bookstax-work">My server uses a self-signed certificate. Will BookStax work?</h3>


<p class="wp-block-paragraph">BookStax requires a valid HTTPS connection to your BookStack instance. Self-signed certificates are not trusted by iOS by default. We recommend using a proper TLS certificate — free options like <strong>Let&#8217;s Encrypt</strong> work perfectly. If your server is behind a reverse proxy (e.g. Caddy or Nginx), TLS termination is typically handled there.</p>



<h3 class="wp-block-heading" id="can-i-use-bookstax-with-a-locally-hosted-bookstack-no-public-domain">Can I use BookStax with a locally hosted BookStack (no public domain)?</h3>


<p class="wp-block-paragraph">Yes, as long as your iOS device can reach the server. This works when you&#8217;re on the same local network (e.g. home Wi-Fi), or via VPN when you&#8217;re away from home. A valid HTTPS connection is still required — you can use a local DNS override and a wildcard or domain certificate for this.</p>



<h3 class="wp-block-heading" id="i-get-a-connection-error-403-forbidden-what-should-i-check">I get a connection error / 403 Forbidden. What should I check?</h3>


<ul class="wp-block-list">
  <li>Make sure your server URL does not have a trailing slash.</li>
  <li>Verify the API Token ID and Secret are entered correctly.</li>
  <li>Check that your reverse proxy forwards the <code>Authorization</code> header to BookStack (some proxies strip custom headers by default).</li>
  <li>Ensure the BookStack API is enabled in your instance settings (<strong>Settings → API</strong>).</li>
  <li>If you use bot protection (e.g. Anubis or Cloudflare), make sure the <code>/api/</code> path is not blocked for API clients.</li>
</ul>



<hr class="wp-block-separator" />



<h2 class="wp-block-heading" id="features">Features</h2>



<h3 class="wp-block-heading" id="what-can-i-do-with-bookstax">What can I do with BookStax?</h3>


<p class="wp-block-paragraph">BookStax lets you:</p>


<ul class="wp-block-list">
  <li>Browse your BookStack shelves, books, chapters, and pages</li>
  <li>Read page content with a clean, readable layout</li>
  <li>Create and edit pages directly on your device</li>
  <li>Search across your entire BookStack library</li>
  <li>Access recently viewed content quickly</li>
  <li>Work with content while offline (cached pages)</li>
</ul>



<h3 class="wp-block-heading" id="does-bookstax-support-offline-reading">Does BookStax support offline reading?</h3>


<p class="wp-block-paragraph">Yes. Pages you&#8217;ve previously opened are cached locally on your device using SwiftData, so you can read them without an active connection to your server. Changes made offline will sync when you reconnect.</p>



<h3 class="wp-block-heading" id="can-i-create-and-edit-pages-in-bookstax">Can I create and edit pages in BookStax?</h3>


<p class="wp-block-paragraph">Yes. BookStax includes an editor for creating new pages and editing existing ones. You can write content in Markdown, which is then saved back to your BookStack instance via the API.</p>



<h3 class="wp-block-heading" id="does-bookstax-support-attachments-and-images-in-pages">Does BookStax support attachments and images in pages?</h3>


<p class="wp-block-paragraph">Images embedded in pages are rendered inline when reading. Uploading new images or managing attachments from within the app is a planned feature for a future release.</p>



<h3 class="wp-block-heading" id="is-there-a-search-function">Is there a search function?</h3>


<p class="wp-block-paragraph">Yes. BookStax uses the BookStack search API to let you search across all shelves, books, chapters, and pages in your instance. Results are displayed with context so you can quickly find what you&#8217;re looking for.</p>



<h3 class="wp-block-heading" id="does-bookstax-support-dark-mode">Does BookStax support Dark Mode?</h3>


<p class="wp-block-paragraph">Yes. BookStax fully supports iOS Dark Mode and follows your system appearance setting automatically. You can also override this in the app settings if you prefer a fixed theme.</p>



<hr class="wp-block-separator" />



<h2 class="wp-block-heading" id="privacy-amp-security">Privacy &amp; Security</h2>



<h3 class="wp-block-heading" id="does-bookstax-collect-any-data">Does BookStax collect any data?</h3>


<p class="wp-block-paragraph">No. BookStax does not collect, transmit, or share any personal data. All communication happens exclusively between your device and your own BookStack server. Your API credentials are stored securely in the iOS Keychain.</p>



<h3 class="wp-block-heading" id="where-are-my-login-credentials-stored">Where are my login credentials stored?</h3>


<p class="wp-block-paragraph">Your API Token ID and Secret are stored in the <strong>iOS Keychain</strong> — the same secure enclave used by iOS itself for passwords and authentication data. They are never stored in plain text or transmitted to any third party.</p>



<h3 class="wp-block-heading" id="does-bookstax-use-any-thirdparty-analytics-or-tracking-sdks">Does BookStax use any third-party analytics or tracking SDKs?</h3>


<p class="wp-block-paragraph">No. BookStax contains no third-party analytics, advertising, or tracking libraries. The app has no external dependencies beyond the standard Apple frameworks.</p>



<hr class="wp-block-separator" />



<h2 class="wp-block-heading" id="troubleshooting">Troubleshooting</h2>



<h3 class="wp-block-heading" id="the-app-shows-unable-to-connect-to-server-what-can-i-do">The app shows &#8220;Unable to connect to server&#8221;. What can I do?</h3>


<p class="wp-block-paragraph">First, verify that your BookStack instance is reachable in a browser on the same device. Then check:</p>


<ul class="wp-block-list">
  <li>The server URL in BookStax matches the address you use in the browser (including <code>https://</code>).</li>
  <li>Your device has an active internet connection or is on the correct local network.</li>
  <li>No firewall or VPN is blocking access.</li>
  <li>If you&#8217;re using a reverse proxy, ensure it&#8217;s forwarding API requests correctly.</li>
</ul>



<h3 class="wp-block-heading" id="pages-load-in-the-browser-but-not-in-bookstax-why">Pages load in the browser but not in BookStax. Why?</h3>


<p class="wp-block-paragraph">This usually means the API is either disabled or blocked. Check that the BookStack API is enabled in your admin settings, and that your reverse proxy does not block or strip requests to the <code>/api/docs</code> or <code>/api/v1/</code> paths.</p>



<h3 class="wp-block-heading" id="how-do-i-reset-my-server-connection">How do I reset my server connection?</h3>


<p class="wp-block-paragraph">Go to <strong>Settings → Servers</strong> in BookStax, select your server, and choose <strong>Edit</strong> or <strong>Remove</strong>. You can then re-enter your credentials or add a new server profile from scratch.</p>



<h3 class="wp-block-heading" id="i-found-a-bug-how-do-i-report-it">I found a bug. How do I report it?</h3>


<p class="wp-block-paragraph">Please use the <a href="https://apps.hanold.info/support-english/">support form</a> or send an email to the address listed in the App Store. Include your iOS version, BookStax version, and a short description of what happened. Screenshots or screen recordings are always helpful.</p>



<hr class="wp-block-separator" />



<h2 class="wp-block-heading" id="updates-amp-roadmap">Updates &amp; Roadmap</h2>



<h3 class="wp-block-heading" id="how-often-is-bookstax-updated">How often is BookStax updated?</h3>


<p class="wp-block-paragraph">Updates are released as new features are ready and bugs are fixed. You can enable automatic updates in the App Store settings to always stay on the latest version.</p>



<h3 class="wp-block-heading" id="is-there-a-feature-i-can-request">Is there a feature I can request?</h3>


<p class="wp-block-paragraph">Absolutely. Feature requests are very welcome — use the <a href="https://apps.hanold.info/support-english/">support form</a> or reach out via the App Store. The most-requested features are tracked and prioritized for upcoming releases.</p>



<h3 class="wp-block-heading" id="is-an-android-version-planned">Is an Android version planned?</h3>


<p class="wp-block-paragraph">BookStax is currently an iOS/iPadOS-only app built with SwiftUI, which is Apple-exclusive technology. An Android version is not planned at this time.</p>



<hr class="wp-block-separator has-css-opacity" />



<p class="wp-block-paragraph">For more background on the app, head to the <a href="https://apps.hanold.info/">home page</a>. Release notes are in the <a href="https://apps.hanold.info/category/bookstax-en/">BookStax section</a>. Direct contact via the <a href="https://apps.hanold.info/support-english/">support form</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
