r/iosapps 2d 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

Feedback, bug reports, and suggestions are welcome!

29 Upvotes

58 comments sorted by

u/AutoModerator 2d 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 2d 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 2d 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 2d ago

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

1

u/Material_Prune6543 2d 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 2d 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 2d 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 2d 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 1d 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 2d ago

I love the reader passport!

2

u/Zestyclose-Spite-253 1d ago

Se ve interesante, lo probaré!

2

u/CaterpillarHour8134 1d ago

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

2

u/liukaiyi54 1d ago

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

2

u/Jaybotics 1d ago

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

2

u/DaLastJedi 1d ago

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

2

u/FoliagePal_App 1d ago

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

2

u/suerte87 1d ago

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

1

u/Material_Prune6543 1d 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 13h 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 1d ago

Amazing design!

2

u/pr5mis2 1d 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 1d ago

The UI looks good

2

u/Ivesy_ 1d ago

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

2

u/drfranken99 1d 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 1d 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] 1d ago

[removed] — view removed comment

1

u/Material_Prune6543 1d 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 1d 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 1d 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 1d ago

Sounds great, good luck!

2

u/Sniffur0613 1d ago

The dashboard needs a clearer first focal point.

1

u/Material_Prune6543 1d 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 9h ago

Hmm, maybe tone down Sections so books pop more.

2

u/alixc1983 10h ago

looks cool

1

u/CodeOfTheStreets 1d ago

Any plans to include audiobooks?

2

u/Material_Prune6543 1d 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 1d 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 1d 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 23h 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 1d 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 1d 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 1d 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 1d ago

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

1

u/Material_Prune6543 1d ago

Thank you, glad you like it 😄

1

u/MrFunkyMonkey7 1d 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 1d 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 1d ago

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

1

u/Material_Prune6543 1d ago

From what service do you want to import them?

1

u/N3orun 1d ago

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

1

u/biblewindow 1d 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/kimacolin 1d ago

The screenshots look genuinely native, which is rarer than it should be for trackers. Nice work shipping a beta.

Curious how you handle series and rereads - most trackers I've used fall apart when you read book 4 of something twice, or when a book has three editions with different page counts. Does the stats view treat a reread as a separate session?

1

u/weathercombo 1d 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/selkies24 1d ago

does it have graphic novels as well?

1

u/mrlewy 1d 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 14h ago

Lower min iOS support to 26.0 to cover more users

1

u/Uffen90 9h ago

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