Syrex-o / FhemNative

Cross Platform FHEM-HomeAutomation Frontend
19 stars 9 forks source link

package name & versionCode #10

Open IzzySoft opened 3 years ago

IzzySoft commented 3 years ago

Did you change the packageName with the newest release? Until the one before, it was de.FhemNative.FhemNative. The APK attached to the latest release identifies as de.fhemnative.app. Is that intentional? Android will consider that a completely different app, so using that to update a previous version is not possible.

Speaking of which: versionCode is 1, indicating an initial release. This might fit the bill of "new app with new packageName", but for updates it must of course be incremented.

Please let me know soon so I know how to deal with your app's listing in my repo, where it resides for almost 2 years now. Thanks!

Syrex-o commented 3 years ago

Hey, The package name is completely correct. The switch to a capacitor, some large background changes and the coming process to publish the apps to the stores, resulted in the new name.

The version code is not intended. Actually the app version code is 3.0. The package.json version in the new "FhemNative Mobile" is 0.0.0.

I don't know, where your version code is coming from?

IzzySoft commented 3 years ago

Wow, that was really fast – thanks! Then I'll establish the app with the new package name and add a deprecation note to the old one, pointing to its successor.

versionCode is an integer – what you describe is versionName. From aapt d badging on the new APK:

package: name='de.fhemnative.app' versionCode='1' versionName='3.0'

As it's the first release with this package name, it's technically OK and practically no issue – there is no previous version to update (at least not for the "normal users"). As you can always increase (but never decrease) versionCode, you can decide on that with the next release (how much to increase, that is).

Now we just need to decide what metadata I can copy from the original version. There's no Fastlane, no screenshots, no PlayStore listing I can check for the new one, so I'll just copy over the "old one" for now. The "old one" got a deprecation mark, pointing to its successor, and will be removed at some point in the future (just let me know when you want it gone). If you have some newer screenshots, or updates to the description, be welcome to pass that to me. I could then also provide you with some initial Fastlane structures so you have that in your hands (my repo updater would pull that along with the APK – and you can also use Fastlane to ship to other stores, like e.g. Google).

Syrex-o commented 3 years ago

Ok, Got that fixed.

Coming versions will be signed the following way:

This results in: versionCode versionMajor * 10000 + versionMinor * 1000 + versionPatch * 100 and versionName "${versionMajor}.${versionMinor}.${versionPatch}"

This should be appropriate.

I don´t know how we should proceed, when the App is shipped to the stores? The community agreed on a one time price of 5€.

Now we just need to decide what metadata I can copy from the original version. There's no Fastlane, no screenshots, no PlayStore listing I can check for the new one, so I'll just copy over the "old one" for now.

FhemNative.de is launching as soon as the firmation is done. There will be lots of images and live exmaples. Not 100% sure if you mean this?

IzzySoft commented 3 years ago

This should be appropriate.

This is one of the common schemes used in versioning, yes – so it sounds good! If you plan to have your app on F-Droid.org, versionCode and versionName must have literal values for auto-update to work, though (no such issue with my repo).

I don´t know how we should proceed, when the App is shipped to the stores?

Oops

There will be lots of images and live exmaples. Not 100% sure if you mean this?

Not exactly. Did you check the link to my Fastlane Cheat Sheet? Basically, it's a kind of standardized way to provide summary, description, screenshots and more. The format is accepted by several stores – fastlane supply can ship to Play Store, F-Droid.org and my repo simply pull it along with new releases. What's in there is fully under your control, which makes it easy to keep it updated for all places supporting this. All done via simple text and graphic files. I could provide you with prepared summary + description for German and English as used in my repo to get you started, and you could build on that. If you want it, that is.

Syrex-o commented 3 years ago

I don´t really know what your

Opps...

means?

IzzySoft commented 3 years ago

Well, if you follow the link it maybe explains itself? It already shipped to my repo when I read that sentence, so I somehow had the feeling of having produced facts in advance of your plans…

Syrex-o commented 3 years ago

I know your Repo and I very much like the fact that FhemNative is available in an alternative store. So no problem that RC.1 and RC.2 are in your repo. There will be a point in the near future, when the releases page here will only contain Windows and MacOS. This marks the start of "Store Releases".

My point was more about the future. Do you have any stats for FhemNative (Downloads/Engagement) from your Repo?

Due to the fact, that iOS support is coming and FhemNative will be part of an "UG", the stores with little one time fees are needed. Everything is already discussed with FHEM and the FhemNative community. "Just informative for you".

IzzySoft commented 3 years ago

no problem that RC.1 and RC.2 are in your repo.

Ugh – thanks!

There will be a point in the near future, when the releases page here will only contain Windows and MacOS. This marks the start of "Store Releases".

And marks the point were I can no longer update it in my repo – as that's where I pull the APKs from. So at that point we need to know how to proceed with that: unlisting from my repo, or find an alternative way of getting the APKs (see here for options).

Do you have any stats for FhemNative (Downloads/Engagement) from your Repo?

Not really, I keep no stats (no analytics or such). I can only grep the logs – which states 70 downloads since July 4th from the repo, plus 39 via the repo browser integrated with my Android site – so around 100 downloads a week. No idea how many of those were first-timers, updates, or other details.

stores with little one time fees are needed.

I cannot offer that, neither does F-Droid. All we offer is donation links – and you can have several of them, like OpenCollective, Liberapay, Flattr, Bitcoin, Litecoin and a "general link" simultaneously. Currently, your app is set up with your Paypal link as "general link" – if you have a donation page listing up all options, that could be used instead.

Syrex-o commented 3 years ago

Sorry for the late response. Was on vacation.

Oh, that's quite a lot engagement. Thanks for the number. I definitely like the fact, that FhemNative ist open source and available in alternative stores. What do you think of an exclusive "FhemNative Free" version, that is continuously shipped to GitHub as APK? In order to get this working, FhemNative free would need at least one "ad Banner". Please let me know what you think.

IzzySoft commented 3 years ago

Sorry for the late response. Was on vacation.

Hopefully a restful one you enjoyed – and not some "work vacation" :smile: Welcome back!

Oh, that's quite a lot engagement. Thanks for the number.

Gladly! And I was a bit surprised, too. I surely expected 2-digit downloads – but the two together are 3-digits, wow!

I definitely like the fact, that FhemNative ist open source and available in alternative stores. What do you think of an exclusive "FhemNative Free" version, that is continuously shipped to GitHub as APK?

That'd be definitely welcome!

In order to get this working, FhemNative free would need at least one "ad Banner".

As long as that doesn't mean some proprietary component, I'd say that's OK. An alternative variant would be leaving out a "boon" which could be retrieved by payment – like it's done e.g. by Netguard (which is available via F-Droid, so definitely no proprietary component inside). When that "boon-feature" is accessed in the free version, instead of invoking it there's be a hint on how to "set it free" (e.g. a link to a page with payment info and details, plus a short explanation on "why").

Syrex-o commented 3 years ago

Hopefully a restful one you enjoyed – and not some "work vacation" 😄 Welcome back!

Haha thanks - Kind of relaxing 😉. Will be working on FhemNative more intense again from August on. The company formation will also be handled in August (finally😂).

As long as that doesn't mean some proprietary component, I'd say that's OK.

What do you mean by that? I would prefer to use Google AdMobs. Any thoughts ?

An alternative variant would be leaving out a "boon" which could be retrieved by payment

Not a giant fan of this. FhemNative should always be "full featured". I think this often frustrates users, especially in those type of applications.

IzzySoft commented 3 years ago

What do you mean by that? I would prefer to use Google AdMobs. Any thoughts ?

Yepp, but you won't like them: that's proprietary, and a show-stopper for F-Droid. Like all ad libraries I know. Plus privacy proponents would choke at that ("GAFAM") and be scared away. So better not. That's why I brought up the "alternative variant" – you could pick some non-essential "nice-to-have", just as motivation. Guess most users would be willing to donate but often forget (or think you don't really care), so that would serve as a reminder.

As to the frowning, here's some background. Though that's only the tip of the iceberg.

Syrex-o commented 3 years ago

Yepp, but you won't like them: that's proprietary, and a show-stopper for F-Droid. Like all ad libraries I know. Plus privacy proponents would choke at that ("GAFAM") and be scared away. So better not.

Ok, that is limiting me quite hard. But guess there are benefits on both sides. What about having a free version with a limited amount of components/rooms? I would love to implement something as: "Watch short ad and create additional components". But if thats a total showstopper, I don´t see other solutions. But I´m totally open to other suggestions.

Guess most users would be willing to donate but often forget (or think you don't really care), so that would serve as a reminder.

As FhemNative will be part of an actual company (in founding process), donations are not very suitable. I already cleared the MoneyPool.

P.s. Sorry for the late response.

IzzySoft commented 3 years ago

Ok, that is limiting me quite hard. But guess there are benefits on both sides.

Well, every medal has two sides. But nothing is keeping you from adding your own ad component (guess why there's an Ads AntiFeature at F-Droid, there must be some "non-proprietary" way for this – and indeed we have several apps using such).

What about having a free version with a limited amount of components/rooms?

That's an approach taken by several apps, and fully acceptable. The "bonus features" could then be unlocked via some key to be acquired, for example (look at e.g. NetGuard or FairEmail which handle it that way).

As FhemNative will be part of an actual company (in founding process), donations are not very suitable.

Eh, no. Unless it's a non-profit company – which I doubt being your goal :rofl: So the above would be possible approaches then.

Syrex-o commented 3 years ago

Well, every medal has two sides. But nothing is keeping you from adding your own ad component (guess why there's an Ads AntiFeature at F-Droid, there must be some "non-proprietary" way for this – and indeed we have several apps using such).

Ok, what would be the "non-proprietary" way? Ideally and with the lowest efforts, I can implement AdMob via a custom component "mine", which is using a capacitor plugin, to create the connection. Capacitor AdMob My component is just a wrapper for the ads. And of cause, user tracking will be turned off.

I don´t know if this is allowed? What other options are out there? Due to the fact, that FhemNative is not a "Native App", there must be a capacitor solution for me.

That's an approach taken by several apps, and fully acceptable. The "bonus features" could then be unlocked via some key to be acquired, for example (look at e.g. NetGuard or FairEmail which handle it that way).

Ah ok. I see the point for unlocking "pro features". But due to the fact, that the project still has only one developer, the effort of implementing such mechanisms exceeds what is intended. The other option I see, is to buy the pro version from the official store. Let´s keep them separated.

Eh, no. Unless it's a non-profit company – which I doubt being your goal 🤣 So the above would be possible approaches then.

Completely right ;) BUT... FhemNative is not "made for profit". But ideally it should cover the costs of the stores, maintenance, server hosting of fhemnative.de and so on.

IzzySoft commented 3 years ago

Ok, what would be the "non-proprietary" way?

I'm no Android dev, so I cannot really tell what implementations for Ads are available in the FOSS world, sorry. Not sure what the Capacitor component would pull in as dependencies. If no proprietary ones are involved, that should suffice to be "allowed in" to F-Droid with the NonFreeNet and Ads Anti-Features added. But may I suggest raising that question in F-Droid's forum? Much better chances for good ideas there.

The other option I see, is to buy the pro version from the official store. Let´s keep them separated.

That'd also work, yes.

But ideally it should cover the costs

I know exactly what you mean. My FOSS work's income doesn't more than that either.

PS, and back to the initial topic: Could you please increment versionCode with each release? You've used 30000 now for the third time. None of the existing user who'd installed one of the previous will receive any update notification – they'll not even see a hint that updates would be available, as to Android all 3 look like the same version.

Syrex-o commented 2 years ago

Ok, I will just try to implement this variant, as soon as the company is finally through. Lets see then.

PS, and back to the initial topic: Could you please increment versionCode with each release? You've used 30000 now for the third time. None of the existing user who'd installed one of the previous will receive any update notification – they'll not even see a hint that updates would be available, as to Android all 3 look like the same version.

I will start to do that, starting with the next public release. Please note, that FhemNative Free and FhemNative will then have different package names. FhemNative will no longer be part of the GitHub Releases. Only the free version will be included.

That should be the last package name change. The "pro" version for the actual stores, keeps the current package name. The "free" version will be get a free suffix in package name, but always the same version code as the pro version.

IzzySoft commented 2 years ago

Understood, thanks! My updater should drop me a note on packageName mismatch. I'd then setup the new package as copy from the old, deprecate the old and "point over" to the new (a la "superseded by X") so people know what to switch to. If it's not already in place: could you care for an export/import feature so data can be migrated, as users would need to switch to a "different app" if they want to stick with the free version, and certainly would not like to lose the data that way?

IzzySoft commented 1 year ago

Oops – all fell asleep? Is development still ongoing?

Syrex-o commented 1 year ago

Hey, definitely. I plan to fully update by the end of the year (Full rewrite + improvements). But there is still much to develop (Documentation/Website/App/Sandbox)

Any help would be extremely valuable.

IzzySoft commented 1 year ago

Not a dev myself, and drowning in tasks as well already – but glad to read it#s still alive! I did not even find time to give your app a try myself. Is on my wish-list for years, but so much to do…

Syrex-o commented 1 year ago

I will close this issue. The package name will change the one last time. Due to the fact that FhemNative will come to the official stores, android and ios versions can only be created by every person individually, if they dont want to support the project.

IzzySoft commented 1 year ago

Due to the fact that FhemNative will come to the official stores, android and ios versions can only be created by every person individually, if they dont want to support the project.

Remember that "dont want to support the project" is not the only reason people won't be able to get the app from the "official stores" – some simply have no access there. Assuming by "don't want to support" you imply it will be a paid app, please consider alternative means of "support" (e.g. a license key that can be obtained via payment by other channels) and having the APK available where it can be obtained (e.g. here and via my repo).

Do you think that would be possible? If not, does the latest available APK (v3.0.0rc3) still work, or should I rather remove the app from my repo?

Syrex-o commented 1 year ago

Do you think that would be possible? If not, does the latest available APK (v3.0.0rc3) still work, or should I rather remove the app from my repo?

The app still works. For all users that still need access, I moved the code to apps/legacy. Ideally version 2.6.3 is way more stable. I have no problem, if you still refer to previous version in your repo.

I fully get your point. I will think about this and will see if I implement an alternative way of getting the app. Currently it is not possible for me, due to the lack of time and resources. Please remember, I´m the only developer :(

IzzySoft commented 1 year ago

Eh, no complaints nor demands made. Fully clear (remember I'm running a "one-man-show" here as well, so I totally understand). Will keep the app up then as long as it works, and keep the hope up you find a way one day providing a newer version to update to without causing too much extra work on your side – maybe a restricted "lite version", ideally to be converted to a "full" one via license key or whatever.

Please let me know when such an APK becomes available here. Until then, I'll disable updates for the current version (there won't be such anyway as the applicationId was changed, if I understood correctly) – and will set up a new entry when you have "food" for it. Thanks a lot – and all the best for you and your project!

IzzySoft commented 9 months ago

I just got a ping from my Todo-List to check with you again: Any news? Or shall I re-schedule for June 2024?

Syrex-o commented 8 months ago

Hey, I am currently not planning to release any apk files in this repo. I think everyone should build their own version, when they don´t want the stores. Am I missing something?

BR

IzzySoft commented 8 months ago

Yupp, I think you miss something:

And I guess I just missed several additional reasons, too. Like, "some people" might compile their own APKs with some additions you wouldn't approve, and spread them to those of the first group above – which, happy to have a source they can use, might take them. Which they wouldn't have done had there been a trustable alternative :wink:

Does that give you some motivation to provide APKs, @Syrex-o?

Torxgewinde commented 8 months ago

Hi there,

+1 for @IzzySoft : I try to avoid apps with anti-features myself and consider apps with closed-source-binaries as tainted and much less trustworthy.

Ideally FhemNative would be available via F-Droid. There is a guide at https://f-droid.org/en/docs/Submitting_to_F-Droid_Quick_Start_Guide/. Would that be in line with your future plans for the app? It seems that a paid version is possible even if it is distributed through F-Droid, but it might require some extra effort and I am not sure where the project is going at the moment and if you want to invest the extra effort.

Having a different name to distinguish the store version from the FOSS/Free/Libre version is fine from my side. However, I am not aware of the exact requirements for adding an app to F-Droid.

Best regards, Tom

IzzySoft commented 8 months ago

It seems that a paid version is possible even if it is distributed through F-Droid

It definitely is. There are many apps which are available in F-Droid for free, while having paid versions at PlayStore.

Torxgewinde commented 7 months ago

@Syrex-o I do not understand the planned monetisation and the MIT licence has been moved to the legacy directory. So I'd like to check what the intended direction of the project is. Can I propose to have paid versions of the app in the Playstore and Apple Appstore, while having a (potentially limited unless a paid code has been entered) app for F-Droid? Does that align with your plans to basically cover cost? This way you would not have to generate revenue from Ads or include trackers.

Syrex-o commented 7 months ago

@Syrex-o I do not understand the planned monetisation and the MIT licence has been moved to the legacy directory. So I'd like to check what the intended direction of the project is. Can I propose to have paid versions of the app in the Playstore and Apple Appstore, while having a (potentially limited unless a paid code has been entered) app for F-Droid? Does that align with your plans to basically cover cost? This way you would not have to generate revenue from Ads or include trackers.

Hey, My intention is to generate a separate package with the same feature set. No ads, no in app purchases. The current approach tries to cover the costs. Participating in the membership program is voluntary. So:

Torxgewinde commented 7 months ago

That's perfect, thanks for the clarification

IzzySoft commented 7 months ago

@Syrex-o as my timer just rang again: is there any ETA? The APK currently in my repo is from 9/2021 (does that even still work?) and thus probably very much outdated; it's a v3.0.0, and you meanwhile reached v4.3.7 here for Mac and Windows.

IzzySoft commented 7 months ago

And btw: a scan (see here for details and background) just revealed the APKs were signed using a debug key. As that has security implications, may I ask you to please switch to a proper release key while on it?

IzzySoft commented 6 months ago

@Syrex-o As APKs signed using debug keys are no longer accepted in my repo, maybe I remove that old version from my repo for now, and you let me know when an APK signed with a release key becomes available, so I can relist the app?

IzzySoft commented 6 months ago

Removed it for now. Please let me know when it's ready to be added back :pray: Thanks!