I Created Another Free Android Cellar App

Log in

SmokingPipes.com Updates

Watch for Updates Twice a Week

PipesMagazine Approved Sponsor

PipesMagazine Approved Sponsor

PipesMagazine Approved Sponsor

PipesMagazine Approved Sponsor

PipesMagazine Approved Sponsor

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
I know occasionally people ask about cellaring apps, not often but some do.

Many are fine with using Excell/spreadsheets, others their memory, and that's fine, but I don't like getting on the computer, I do all I can from my phone and spreadsheeting sucks on a phone.

So I made an app, and I decided if anyone else wanted it, I'd share it. I've put 6 or 8 months work into it so far. Version 1.0 is done.

I decided best way to share it would be the Google Play store. Well, I can't put it there where people can trust it unless I can get 20 people to sign up to test it for 2 weeks. The kicker? I have to get 20 people to agree to share their e-mail that they use for Google Play with me.

So, anyone want to? PM me your emails, don't list them publicly. I promise I won't spam you, and you don't have to be hardcore testing or anything. I know it's a bit of a long-shot.

Screenshot_20241120-031347.png

Screenshot_20241119-183630.pngScreenshot_20241119-183641.pngScreenshot_20241119-183654.png
 
Last edited by a moderator:

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
Are there provisions for tins or ounces and dates?
Not at the moment. There's a whole number "quantity" field, but no specifics like ounces, pounds, grams, etc, and no provisions for dates.

Future updates will include fields for dates, but I have to wait for Android to fix their broken Compose date picker stuff before I can. They actually updated the coding for date-picker stuff last month. However if you look at Android apps made with compose (maybe the YouTube app, but the play store for sure), you'll see they don't even follow their own crap they foist on developers (not that I am a developer). You can look up their Android 15 forced edge-to-edge stuff and a lot of actual developers grumbling about Google messing it up and basically expecting devs to make their apps compatible for Android 15 instead of making things backwards compatible and not breaking. Without going into detail, I found a way essentially to bypass the edge-to-edge enforcement by putting the insets stuff way at the top level. Pretty sure that's what Google did with it's own apps, since edge-to-edge doesn't work right on Android 15.

Bear in mind, I am also not a developer, I only just started learning coding to make this app and a lot of stuff I had to figure out and had to make from scratch because it doesn't exist in Compose (like autocomplete textfield suggestions, previously a parameter available in Views, still not available in Compose and they've been working on Compose for like 3-4 years now).

I actually had to custom make and boilerplate from scratch half of the stuff used because the out-of-the-box components have immutable and inaccessible parameters that make them basically useless. The textfield at the top of the home page for instance for searching blends. If you see on the add/edit entry screen how relatively huge the text fields are? Unless you custom make them from scratch, that's how big they have to be to not cut-off the entered text. On the add/edit entry screen, I had to write maybe 150 lines of code by hand from scratch to create an autocomplete suggestions for the brand field.

It's 6-8 months of work just to get what I got so far, that I already had to re-work 4-5 times due to breaking changes in the codebase over that short time.

I quickly learned why so many actual developers abandon app development for phones and why many just quit trying to keep their apps up-to-date. They push their half-baked, incomplete and broken APIs/SDKs, force you to use them, then force you to deal with their incompetence and broken/incomplete crap. Like they give you a car frame, half an engine, and then expect you to make it run with the supplied plywood that you have to somehow make work to complete the engine.

Anyway, there are expansion plans for more, but right now, it's just the basics and usable.
 

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
For the curious and for a bit more information as to what it is/does...

Essentially it's just like spreadsheets like what other people use, but easier to use for a phone environment. It doesn't connect to the internet at all, all the data is stored locally and offline (which isn't much data, what you put in for blends amounts to a few KB because it's just text data).

It's essentially just a cellar tracking app, like having a list of all your blends, but one that you can search, filter and sort quickly and easily. At the moment, included fields are just: brand, blend, type (broad genre category), "quantity" (a simple, generic, whole-number value which you can just decide for yourself what a quantity of "1" represents, like is that 1 tin, 1 gram/oz, etc), very simple personal ratings (favorite, neutral or dislike), and notes. All fields are filterable so you can see say, only the blends you have from C&D, or only the blends you have from Sutliff that are also aromatics and in your favorites, etc.

That's the main purpose, a filterable list of what you have, not to dissimilar to how people that use spreadsheets use their spreadsheets. The main page also has a table view mode if you prefer a table to a list, and eventually if I can figure out how to make the bottom app bar disappear on scroll, you'll have a lot more screen real estate in landscape orientation. The table also is sortable by clicking the columns at the top for brand or blend (alphabetically sorting ascending, descending, and then the default sort order of the order in which you added things to the database).

Adding stuff is pretty easy, it only requires filling out the brand and blend fields, all others remaining blank (though leaving the quantity field blank, it presumes the quantity is 1). The brand field in adding also has an autocomplete suggestions that pop up based on what you already have in your database. Text enterable fields in the future will also have this if it's a type of field where you might be entering the same data a lot.

There's also a stats page that also reacts to the filtering, with several pie charts for visualization.

It also has a function for importing a CSV file, so if you have a spreadsheet, you can export the spreadsheet as a CSV and then import it to the database without having to manually enter in everything. There's an import wizard that allows you to map the CSV columns to the correct columns in the database table. It also has an option to export CSV files too, so if you want to keep spreadsheets on the computer or keep the list backed-up, you can easily do that.

In the future, I plan to expand on this with additional fields like in- vs out-of-production status, subgenres, components, cut, purchase/manufacturing and open dates. I also plan to expand the options, like default list sort order, CSV import options for updating missing fields in existing entries, overwriting chosen fields for existing blends, etc. I am also considering adding a pipe database for saving your pipe collection with stats for that and fields for various parameters (like bowl and chamber diameters, height, length, finish, stem material, etc). I'll also extend layout support to tablets (taking advantage of the larger screens).

It will never have ads, or track your personal information, or device information, and it will always be free, and requires no special permissions.

Some things it will never do involve anything that requires internet connection or connection to existing tobacco websites (due to Android policies about tobacco and the facilitation of its purchase).

I made a quick video to showcase what it's current capabilities are. In the video when I demonstrate the note entry, you may notice the first line get duplicated... that's not a bug that you'll ever see unless you are, like me, using a very out-dated keyboard (even then, you only see it because I'm being way more rapid in entering than anyone would be actually typing a note):
 
Last edited:
  • Like
Reactions: LotusEater and ziv

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
Just a thought. Would it be difficult to add a 'Unit' field after 'Amount'? It could just be a free-form text field to make it easier.
Yeah, that's something I could do theoretically, but would involve a lot of stuff to deal with like the stats involving hidden conversion tables (so that it knows 1 oz is not the same thing as 1 pound or one gram). That part actually wouldn't be difficult... that's just "business logic" (that part is easy for me).

But the reality of it is... are people going to say, choose oz and then consistently update the quantity after measuring out every time they drop an ounce? How are people even commonly tracking their quantities? By tin/jar, pound, gram, oz, etc?

In which case, how is that any different than just picking a particular quantity to represent 1? In my head, I consider 50 grams or 1.75 oz to be equal to 1, so when I add something, if I get a 100 gram or a 3.5 oz tin, I set the quantity to 2, if I get a pound, I set it to 9. Then I just don't update the quantity until I finish a tin, so if I finish a 1.75 oz tin, I dop the quantity by 1, if it's a 3.5 oz I drop it by 2.

One of the goals is simplicity, not pedantry. Besides, how long until people start complaining they can't add half oz, or can't add ____ measurement type, etc and then the thing is more bloated than a beached whale. I've seen some absolutely nightmarishly huge spreadsheet formats and that's kind of the exact opposite of one of the goals.
 
Last edited:

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
Sounds cool, but alas I am hooked to an iPhone….
Well, if anyone knows how to do development for an iPhone, I'm willing to collaborate, I do have all the code uploaded to a Github repository. Eventually I might multi-platform it, but iPhone would have to third-party side-load it, no way it would ever be able to get on the Apple app store.
 
  • Sad
Reactions: Sobrbiker

RAGallup

Lurker
Nov 13, 2024
15
32
Superior, WI
Yeah, that's something I could do theoretically, but would involve a lot of stuff to deal with like the stats involving hidden conversion tables (so that it knows 1 oz is not the same thing as 1 pound or one gram). That part actually wouldn't be difficult... that's just "business logic" (that part is easy for me).

But the reality of it is... are people going to say, choose oz and then consistently update the quantity after measuring out every time they drop an ounce? How are people even commonly tracking their quantities? By tin/jar, pound, gram, oz, etc?

In which case, how is that any different than just picking a particular quantity to represent 1? In my head, I consider 50 grams or 1.75 oz to be equal to 1, so when I add something, if I get a 100 gram or a 3.5 oz tin, I set the quantity to 2, if I get a pound, I set it to 9. Then I just don't update the quantity until I finish a tin, so if I finish a 1.75 oz tin, I dop the quantity by 1, if it's a 3.5 oz I drop it by 2.

One of the goals is simplicity, not pedantry. Besides, how long until people start complaining they can't add half oz, or can't add ____ measurement type, etc and then the thing is more bloated than a beached whale. I've seen some absolutely nightmarishly huge spreadsheet formats and that's kind of the exact opposite of one of the goals.
I understand. I spent over 40 years as a software developer. People always want something more or different. It was just a suggestion which you had probably already considered.

As an aside, I would be interested in helping with the code except I've never worked on phone apps and, from the way you describe it, I don't want to start now. I admire what you've done, though.
 

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
Really it's not that I'm not taking the suggestions to heart, it just depends on how practically they can be implemented in Kotlin/Jetpack Compose or work on a phone environment. When I'm ready to hear feature requests, I'll let you guys know, but there's other stuff I am working on first (like the expanded CSV import options).

Anyway, just so everyone's on the same page, I've got 12 people agreed so far. I need a minimum of 20 testers, so I'm waiting until I have at least 20 people before I give them the email list.

I think what happens then is that they give me a link to give out where you can all sign up to download it (and there's no point spreading the link around because only those on the email list will be able to get it).

But at that point in time when I know how the next steps work, I'll let you all know. But I'm not going to spam or message your emails or anything, other than maybe 1 at the beginning so you all have the email to send any bug issues or feedback to.
 

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
Just a quick update because I know it's been a little while since some of you shared your emails with me...

I'm still only at 13 volunteers, so I decided to go hunting for more. I really hate Reddit, but I did find a pipe subreddit that I might be able to get some more from. I made a post but, as I am not established there and subreddit mods tend to be power-tripping jerks and the user base tends to be the worst of the worst for online stuff, I don't know how that's going to go. For all I know, the post may get deleted from the outset.

Hopefully I can pull in at least 7 more though, but if not, I am not sure where else to look.
 
  • Like
Reactions: Elric

RAGallup

Lurker
Nov 13, 2024
15
32
Superior, WI
All right. I don't really have a cellar, just a couple of tins lying around, but I'll be glad to help out as a volunteer if it would help. I don't know much about cellaring tobacco, but I do know about software and user interfaces. Let me know if that would be helpful and I'll DM my Google email.
 
  • Like
Reactions: sardonicus87

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
All right. I don't really have a cellar, just a couple of tins lying around, but I'll be glad to help out as a volunteer if it would help. I don't know much about cellaring tobacco, but I do know about software and user interfaces. Let me know if that would be helpful and I'll DM my Google email.
Well at the moment, it's basically a glorified inventory list app. Actually tracking things that those who are into cellaring haven't been added yet (like date tracking).

But yes, still need more testers. My post on Reddit didn't get deleted, a handful commented on it with suggestions, but only one offer to be a tester.

Honestly, I pretty much ran a bunch of tests and already know it works, and I'm pretty quick-brained and already pre-thought things to test. For instance, the database is setup such that every entry must be a unique combination of Brand and Blend (you can have multiple blends under a brand, multiple brands with the same blend name, but only one unique entry per Brand + Blend combination). Now, maybe there's a way to do it in Room/SQLite that I don't know where certain columns are required to have a value on a table, but I made it so adding stuff or saving edited items is disabled unless both Brand and Blend are filled out (the only required fields). It's the same with the CSV import. But then I thought what if someone has a CSV and they map a column of their CSV to each of those things, but an entry on their CSV is missing a value for the brand or blend column? So I make a 3 item CSV to test just that and it actually imported a record with a missing blend field. So I went back to the data class I created for importing CSV files and saw my mistake... I had given all fields an Elvis operator ( ?: ) that provided a default value of "" (empty string). So to prevent that, I had to change it to instead be null and then change the val function from "maxOf" to "maxOfOrNull" (or maxOfNotNull?, don't remember now) so that it would skip entries from the CSV that were empty in those columns.

I've run countless tests like that for all kinds of little things, even varying the IME (phone keyboard) input in different scenarios.

I purposely tried to crash it and when I could get it to do so, ran log statements and investigated and fixed things. I fully tested everything I did when I did it so I wouldn't forget later. I made something fully working before moving on to the next part. And if I couldn't figure it out, I made notes on what was broken that I had to come back to later with fresh eyes.

I'm a mesure twice, get ready to cut, then measure twice more to be absolutely sure, get ready to cut again, then double check the calibration of the measuring tool, double check the measurements needed are indeed the correct ones, measure again, then add 1-5% extra just-in-case and then finally cut kind-of-guy.

The only thing I actually need feedback on is if it crashes and I'd then need to know the device so I could look it up to see if there's something specific to that, need feedback on that the layout doesn't get jacked up on various devices (I've only tested on two physical devices and 2-3 emulator devices all with different versions of Android), and if the UX is good, like if anything seems to lag or be not smooth, if how to do things makes sense or are intuitive and are easy, etc.

Really all I need are people to agree and sign up and download and stay signed up for 14 days, they don't have to do any actual testing. However it would be appreciated if people that signed up did use it and report back problems, and I'm sure some will. At this point, I just need bodies... I'd ask friends to help out if I had any, but I don't.
 
  • Like
Reactions: ziv

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
OK, I finally got just at 20 emails, and it looks like I can add more emails at any time, and I can run the closed testing as long as necessary. Also, you don't all have to be signed up simultaneously, just when you do sign up, to be signed up for 14 consecutive days.

Not sure now who or from where, but someone with the email that starts with "ross"... it wouldn't let me save that email to the list of testers.

Anyway, what I will do is send a blind carbon copy email to everyone that signed up. The email will come from sardonicus.notadev@gmail.com and the subject will be "Tobacco Cellar testing". I'll send out this e-mail within the next few hours. I'll never email you beyond this, you'll never get spammed or anything else.

The email will contain a link for signing up to the test and downloading the app. The e-mail will also contain instructions on how to use the app, as some things might not be exactly clear, though I tried to make it as intuitive as possible.

Whether you want to actually test it is up to you, or just be signed up to the testing for the two weeks without doing any testing is fine by me. If you do choose to test it, what I am looking for feedback on is if you encounter any bugs, or it crashes, or if the layout has issues (like if elements are crashing into/overlapping each other for example, or are partially pushed off-screen.

If you do want to provide testing feedback or encounter a bug, just email a description of what happened to the aforementioned email as well as what the make/model of your device is. If there's layout issues, including screenshots helps.
 
  • Like
Reactions: ziv

sardonicus87

Lifer
Jun 28, 2022
1,394
14,194
37
Lower Alabama
I sent out the e-mail, but here is the link to sign up for the testing and downloading the app:
https://play.google.com/store/apps/details?id=com.sardonicus.tobaccocellar

This link will only work for the list of emails I submitted as testers. If you'd like to test the app as well, you need to send me your email address so I can add it to the list of approved testers. You must already be signed in to Google Play with the email that you provided to me.

The initial link I posted was wrong because I set up the test track wrong, so disregard the initial email, I sent a second one with the above link that's correct.

Anyway, it may not be available right away and might take a bit to show up... apparently up to 7 days. Ugh.
 
Last edited:
  • Like
Reactions: ziv