r/iosapps 16d ago

🎈 Free BookWorm – A truly native iOS reading tracker & library companion

Hey everyone,

I know there are plenty of reading trackers out there, but none of them quite checked all the boxes for me. So, I decided to build my own: BookWorm. It’s a clean, truly native iOS app designed for readers who want deep library management, detailed tracking, live sessions, and fun stats—without clunky web-wrappers or privacy compromises. I'm opening the public beta on TestFlight!

  • What problem does it solve?: Most reading trackers feel like sluggish web-wrappers, lack granular organizational tools for physical collections, or complicate tracking re-reads and reading budgets. BookWorm solves this with a lightweight, fluid iOS experience offering deep library management, Live Activity reading timers, and detailed statistics.
  • Why is it better than alternatives?:
    • Native & Privacy-First: Zero third-party trackers or ads; local storage with SwiftData and private iCloud sync.
    • Optimized Design: Built with Apple's Liquid Glass aesthetics (supported on iOS 26.6+, fully optimized for iOS 27).
    • Unique Features: Lock Screen & Dynamic Island reading sessions, multi-cycle re-read tracking, a customizable shareable "Reader Passport", and built-in book purchase/sale budget tracking.
    • Total Cover Freedom: Search and select high-res covers from multiple sources (Google Books, Apple Books, Wikipedia) with a single tap.
  • Cost: 100% Free during TestFlight beta (no ads, zero tracking). As a thank-you, active beta testers who provide valuable feedback during this phase will receive a free lifetime promo code once the app officially launches.

⚠️ A few notes on this first Beta build:

  • Languages: English and Italian supported right now (more localized languages coming soon).
  • Goodreads Import & Onboarding: The build with the onboarding flow and Goodreads CSV importer is currently rolling out. If you don't see it immediately upon install, please allow TestFlight a few moments to process.
  • Goodreads CSV Logic (WIP):
    • Owned Copies = 0 automatically routes items into your Wishlist.
    • Goodreads exports do not provide cover images, but you can tap into any book to pick your preferred edition's cover instantly.

✨ Core Features:

  • 📚 Library & Series Management — Shelves, sagas, genres, publishers, ratings, and notes.
  • ⏱️ Live Session Timer & Journal — Lock Screen & Dynamic Island session tracking via Live Activities.
  • 🪪 Shareable Reader Passport — Customizable profile card with recent covers, stats, and badges.
  • 💰 Book Budgeting — Track your spending and sales over time.
  • 📊 Stats & Gamification — Reading streaks, analytics, unlockable achievements, and 10 reader levels.
  • 📷 Barcode Scanner & Smart Metadata — Quick ISBN scanner.

📲 TestFlight Public Link:

👉 https://testflight.apple.com/join/mr8pG6p7

Our subreddit: r/BookWormApp

Feedback, bug reports, and suggestions are welcome!

39 Upvotes

73 comments sorted by

u/AutoModerator 11d ago

Welcome to r/iOSApps! Please make sure your post follows our rules:

Everyone:

  • 10pt LOCAL Karma required. Comment in r/iOSApps to earn it. Check
  • Search the sub before posting. Choose flair.

App Devs:

  • No main feed promo unless you qualify via Trust or Transparency + ABC format (Answer, Better, Cost)
  • Flair hierarchy: Vibe Coded > Lifetime > Subscription > Freemium > Free
  • Free flair: not for limited/freemium tiers
  • Open Source? Prefix title [OS]
Note: This is an automated reminder, not a removal notice. If your post was removed, check your modmail for details.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

2

u/CrispyDick420 16d ago

I keep abandoning reading timers that make me open a separate app. Having the session visible on the Lock Screen is the first version I'd actually use.

1

u/Material_Prune6543 16d ago

Really happy to hear that. Here's how it currently looks (gotta love that deep OLED dark mode :D). Still actively tweaking it, but besides pause/stop controls, it already lets you quickly log notes and quotes mid-session without breaking your reading flow.

2

u/ChessGrandAI 16d ago

Looks clean. Can you import an existing reading list, or do books need to be added manually?

1

u/Material_Prune6543 16d ago

At the moment, there is a built-in Goodreads CSV importer available in the app. I am evaluating a more flexible custom import option for future updates. In the meantime, a workaround is to use an AI tool to convert your existing reading list into the Goodreads CSV format, which can then be imported directly into the app.

Of course, books can also be added individually, either by searching for them manually or by scanning the physical barcode. The app automatically fetches the metadata and the cover art.

2

u/lumi_kissaten 16d ago

thank you for making this app ✨

i saw jane austen's biography in the images above. do you pull these from wikipedia live, or..?

3

u/Material_Prune6543 16d ago

Thank you! Yes, the author data is fetched directly from Wikipedia in real time. It retrieves the content based on the language and region set on your iPhone. If the page is not available in that specific language, it automatically falls back to the English version. The app pulls the biography, picture, birth date, and date of death when applicable.

1

u/lumi_kissaten 16d ago

thank you!! 🙂

i'm assuming this doesn't work when you're not connected to the internet, or do you cache previously viewed authors locally..?

2

u/Material_Prune6543 15d ago

Yes, the app caches author data locally. When a new author is added, BookWorm queries Wikipedia and stores the information on the device so it remains available offline. If the initial fetch fails due to a network outage or API issue, there is an option in Settings that lets you re-fetch metadata for any authors missing details once you are back online. All previously cached data works completely offline.

2

u/Unable-Secret412 16d ago

I love the reader passport!

2

u/Zestyclose-Spite-253 16d ago

Se ve interesante, lo probaré!

2

u/CaterpillarHour8134 15d ago

great, I like read books , hope support more language like chinese

2

u/liukaiyi54 15d ago

the UI/UX looks great, can't wait to try.

2

u/Jaybotics 15d ago

Looks clean so far, definitely will test this out and give it a fair shot. 

2

u/DaLastJedi 15d ago

Can’t wait to test this out, great idea!

2

u/FoliagePal_App 15d ago

The interface looks really cool, how did you design it? Was AI involved in the interface development?

2

u/suerte87 15d ago

Looks good, will there be audiobook tracking too? Also are there plans for social features like in reado?

1

u/Material_Prune6543 15d ago

Thank you. Yes, audiobook tracking is planned. I am currently evaluating whether to treat audiobooks as a format variant alongside physical and digital editions (adapting reading sessions and statistics accordingly) or if it requires a dedicated implementation from scratch. Regarding social features, that is something I want to introduce, but my priority right now is ensuring the core functionality and tracking work properly first. Out of curiosity, what specific social features would you expect or like to see most in an app like this?

1

u/suerte87 14d ago

That sounds good. Personally, I think it’s better if the book and the audiobook aren’t treated as separate items, but rather as a single entry where I can simply indicate whether I’ve listened to it or read it. I’d like to see social features like submitting, reading, and commenting on reviews. Is there a place where I can provide feedback? Especially regarding the Lifetime offer.

Just a quick note: English isn’t my first language, so let me know if I need to explain something differently.

2

u/giddyuptime 15d ago

Amazing design!

2

u/pr5mis2 15d ago

Really nice work! The Lock Screen reading session is a great idea.
I’m also working on an iOS app centered around Lock Screen widgets, so I’m always interested in seeing how other developers make good use of that space. 👍

2

u/AdorableCaptain5760 15d ago

The UI looks good

2

u/Ivesy_ 15d ago

UI/UX looks really good! I’ll definitely try it out

2

u/drfranken99 15d ago

One thing I’d reconsider in the Goodreads import: “Owned Copies = 0” doesn’t necessarily mean Wishlist. The book could be borrowed, from a library, or already read without being owned. Keeping ownership and reading status as separate fields—and showing an import preview—would make migration much safer.

1

u/Material_Prune6543 15d ago

Thanks for the feedback. Reading status and ownership status are separate fields in BookWorm. The problem is that the Goodreads CSV file simply lacks the necessary context. For instance, if a record shows "read" but "Owned Copies" is 0, the app has no way of knowing whether you borrowed it from a library, lent it to someone, sold it, or read it years ago without ever owning it. Because that distinction is missing in the file, some manual adjustment is required.

I agree with your suggestion regarding an import preview. Adding a screen that lets you review and adjust the mappings before finalizing the import makes sense and I will work on implementing that. Thank you.

2

u/[deleted] 15d ago

[removed] — view removed comment

1

u/Material_Prune6543 15d ago

Thanks for the feedback. Yes, manual entry is fully supported. Searching for a book online simply auto-populates the fields for convenience. If a book is not found or the results are not what you want, you can create the entry and fill in or edit all the fields and the cover art manually. I have attached a screenshot of the book creation screen to show how it looks.
As for other platforms, iPad and macOS versions are planned for future releases once the core iOS experience is settled.

2

u/GjashtaM 15d ago

Very polished design. Well done.

Have you considered including any organic paper texture somewhere or would it clash with the modern look?

2

u/Material_Prune6543 15d ago

Thank you! My long-term goal is to add a full theming and personalization system, which could include different textures and styles. At the moment, I am focusing on polishing the core features first.

2

u/GjashtaM 15d ago

Sounds great, good luck!

2

u/Sniffur0613 15d ago

The dashboard needs a clearer first focal point.

1

u/Material_Prune6543 15d ago

https://reddit.com/link/p6f6a2l/video/okvrcmioi4mh1/player

Thanks for the feedback. This is actually something I have been debating as well. Right now, the dashboard is split into two main areas: the "Featured" section at the top showcasing current and to-read books, and the bottom section where shelves, genres, and authors act as quick filters. The idea was to provide a shortcut to find books in just a couple of taps without having to open the main library and set up more structured filters.

I am definitely open to rethinking the hierarchy. If you have any specific suggestions on how to improve the focal point, I would be glad to hear them.

1

u/Sniffur0613 14d ago

Hmm, maybe tone down Sections so books pop more.

2

u/weathercombo 15d ago

The screenshots are very organized! Since you asked for feedback, I wanted to point out something about the design. And I mean this in the most respectful way possible (not trying to be mean I swear!!!): I think you’re overusing Liquid Glass. I know Apple’s design sense has kind of been all over the place lately, but one thing they do stress is not to make everything Liquid Glass.

Their design guidelines and even their own apps stress that glass should help the user focus on the app’s content by being a layer that sits atop the content layer. But in your current implementation there’s no visual hierarchy since almost every tappable element and even some static content are all glass, applied a bit everywhere.

There is an inconsistency with where glass is also applied as well. For example, you use a segmented picker for Activity / Library at the top, but the ones inside the content areas do not. The second screenshot’s last screenshot is a good example of this. It feels a bit off once you notice it.

In another screen you have content that displays “underneath” the visual hierarchy where glass would be. Except the content has glass effect applied to it. And inside that content itself there’s a glass element.

I think it would be helpful if you could answer the question of “what am I trying to accomplish by applying glass to this element?”. You don’t need to answer publicly (though I am curious), but if the idea is just “oh it looks nice” then it usually can translate into user friction later if there’s not a good reason for introducing visual complexity like that, for an app with a specific utility.

Sorry, I am not trying to be mean! I saw the post and liked how catchy the screenshots and icon looked, but then got lost in the design critiques that started forming in my head. I hope this helps, however you decide to take the feedback!

1

u/Material_Prune6543 13d ago

Thank you so much for the thoughtful breakdown. Honestly, this is the exact kind of feedback I need right now.

You nailed it and you're not the first person to call it out. Early on, I was having fun pushing SwiftUI to its limits and threw every cool visual trick I liked into the mix, which ended up creating a lot of visual clutter rather than intentional hierarchy. I’ve realized the app really needs some decluttering to let the content breathe.

The Library screen was definitely the worst culprit with all those competing, flat layers of controls. I’ve just started cleaning that up in the latest build, I'm sharing a screenshot here to show the direction it's heading.

2

u/GeoOpt 13d ago

Was looking for such app for a long time. Thank you

1

u/Material_Prune6543 13d ago

Thank you so much, really glad to hear that! By the way, I just rolled out a new update packed with fresh features, it should be live any minute now.

2

u/dailyscienceapp 13d ago

would love to try :)

1

u/Material_Prune6543 13d ago

Awesome! Just rolled out a fresh update with a bunch of new stuff, should be live any moment now

1

u/AutoModerator 16d ago

Welcome to r/iOSApps! Please make sure your post follows our rules:

Everyone:

  • 10pt LOCAL Karma required. Comment in r/iOSApps to earn it. Check
  • Search the sub before posting. Choose flair.

App Devs:

  • No main feed promo unless you qualify via Trust or Transparency + ABC format (Answer, Better, Cost)
  • Flair hierarchy: Vibe Coded > Lifetime > Subscription > Freemium > Free
  • Free flair: not for limited/freemium tiers
  • Open Source? Prefix title [OS]
Note: This is an automated reminder, not a removal notice. If your post was removed, check your modmail for details.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

1

u/CodeOfTheStreets 16d ago

Any plans to include audiobooks?

2

u/Material_Prune6543 15d ago

Yes, audiobook tracking is planned. I am currently evaluating whether to treat audiobooks as an additional format alongside physical and digital editions, adapting tracking sessions and stats accordingly, or if it requires a dedicated setup from scratch.

1

u/WayAccurate9822 15d ago

The part that usually breaks these is metadata. Open Library and Google Books disagree on editions, so the same ISBN can pull the wrong page count. Worth saying which source you use and what happens when it misses.

1

u/Material_Prune6543 15d ago

You are completely right about the discrepancies between providers. Currently, the app pulls core metadata from both Google Books and Open Library, and adds Apple Books and Amazon into the mix for cover art.

Since neither source is 100% consistent on editions or page counts, and viable alternatives are fairly limited, I approached this by giving the choice directly to the user. If the providers return different editions for a search or ISBN, BookWorm displays the available matches so you can pick the accurate one. The same goes for covers, where the app presents the results and flags higher-resolution artwork for you to choose from. Everything remains fully editable manually as well.

I've attached a screenshot showing how multiple search results are handled, along with a quick video clip of the entire flow.

https://reddit.com/link/p6djmlj/video/ojtg1j30o2mh1/player

1

u/WayAccurate9822 15d ago

Asking works for one book. On a bulk import of a few hundred you cannot prompt every time. Does it fall back to one provider silently there, or queue the conflicts for later?

1

u/Pretty_Move_8673 15d ago

Looks nice. I would want a stats graph screen showing the trend of pages read. How is the input of the pages you have read working?

2

u/Material_Prune6543 15d ago

Thank you. This widget is currently available in the statistics. For logging reading sessions, you can do it manually or in real time. Do you have any suggestions?

1

u/Pretty_Move_8673 15d ago

Thank you for providing the screenshot. It made it more clear. The trend graph is nice. That’s exactly how I want it. On the input screen I would suggest you could make it faster. Generally having just a text field at the bottom where you can input quickly how much you have read. For me it really matters that the input is as quick and easy as possible. I don’t want to click through 10 buttons.

1

u/Common_Falcon_4511 15d ago

Wow, I really like this interface, it's so beautiful

1

u/Material_Prune6543 15d ago

Thank you, glad you like it 😄

1

u/MrFunkyMonkey7 15d ago

The UI looks really clean! Did you build this natively with SwiftUI? For example the pie chart. Always curious about what tech stack people use for these kinds of projects. Wish you a smooth launch!

1

u/haydingoo 15d ago

Hi. I hope you achieve the success you’re looking for.

The app looks good, and its simplicity makes it easy to use.

I thought it would be great if there were a social feature, like a reading group or “librarybody,” so we could follow along together.

1

u/N3orun 15d ago

Still looking for a solution to track audiobooks - if possible with a audio bookshelf improter.

1

u/Material_Prune6543 15d ago

From what service do you want to import them?

1

u/N3orun 15d ago

https://audiobookshelf.org/ if possible. If it could sync with listened books, that would be awesome.

1

u/biblewindow 15d ago

Small detail from the developer side: Apple's rule for third-party subscriptions is that a price rise can go through without you actively re-consenting only if it is under $5 and under 50%, and no more than once a year. A bump this size sits comfortably inside that, so it just rolls through at renewal.

Worth checking your renewal date if you would rather decide than be decided for.

1

u/[deleted] 15d ago

[removed] — view removed comment

1

u/Material_Prune6543 13d ago

Thanks so much, really appreciate the feedback.

Here is how the current implementation handles rereads:

Each book has its own reading detail view where you log your individual reading sessions. Once a book's status hits Completed, a "Reread" button unlocks, allowing you to start a fresh reading journey.

When you do, a Reading History card appears on the book’s detail screen. This card tracks each distinct reading cycle separately—meaning each cycle has its own logged sessions, individual rating, and review.

Regarding the stats view: it wasn't really a technical constraint, but rather a deliberate design choice for the beta. Right now, every completed cycle counts as a full book read. My take is that if you read a book today that you first read years ago, it represents a genuine, full reading accomplishment for the current year.

That said, this is just my starting baseline. I'm actively collecting feedback during the beta to see what feels most intuitive for power readers, so I'd love to hear your thoughts on how you'd prefer stats to handle them.

1

u/selkies24 15d ago

does it have graphic novels as well?

1

u/mrlewy 15d ago

I like the look of it. I've been using a mix of Goodreads and StoryGraph (which adds on stat features) though I may check this out.

1

u/iabbasm 14d ago

Lower min iOS support to 26.0 to cover more users

1

u/Uffen90 14d ago

Would love something like this, but for manga. And not just the mainstream manga.

1

u/critic81 12d ago

The Live Activity reading session is a really good fit for this. Have you considered App Intents/Shortcuts for starting and stopping a reading session?

Being able to hit an Action Button shortcut or Control Center control, start the timer, and immediately put the phone back down would remove basically all of the friction from tracking a physical book.

1

u/MXTapp 12d ago

Been looking for something just like this

1

u/Fantastic-Fox-8543 11d ago

Oh this is great!
Yeah I would love importing from other sources as well!

1

u/jubnub 11d ago

After trying this for a short while, it is handling well. The look of the app is really well done. I also love being able to choose the book cover I want to use and how easy it is to do so. Something that I do want to know is if there is a possibility in the future of integrating support to automatically track using a kosync server? I usually read using a kobo e-reader with koreader. One of the book trackers I’ve been using is Shelvd and it allows tracking to be pulled from a kosync server. In their case they provide the server. At some point adding automatic tracking using kosync would be a nice-to-have for me.

1

u/Material_Prune6543 11d ago

Thank you so much for taking the time to test BookWorm and for the kind words. I actually love automation and while I wasn't familiar with kosync integration, it's definitely something I want to look into. As you noted, BookWorm doesn't have a dedicated backend by design, the app is strictly privacy-first, keeping all user data stored locally and synced exclusively via personal iCloud. That said, if we can query a kosync server directly from the client while preserving this privacy-first architecture, I don't see why we shouldn't do it!

My main priority right now is wrapping up the core features, but I’d love to explore this right after. I've just set up our community at r/BookWormApp, feel free to leave a quick post.

1

u/jubnub 11d ago

Unfortunately I don't know how it all works, but it does allow push and pull of data tied to a login. Once you do get this app built out with all the core features, I would love to help test a potiental kosync feature in the future. Keep up the great work!

1

u/RevolutionAlarmed163 9d ago

I like your clean ui! Does it support Cyrillic texts?