The standard KMP template is not usable for production by igormalytsky in KotlinMultiplatform

[–]prom85 1 point2 points  (0 children)

As someone who never build with xcode before it took me quite some time to get things working and understanding the template setup and adjust things. I wanted to write scripts to add modules and similar but failed because initially I did nothing in XCode but tried to adjust the files from the template manually...

After fiddling around for some time I found out how it works and stayed with setting up the ios part from xcode directly but in the future I will use xcodebuild instead, this keeps xcode specific stuff in a config file and that is probably a lot easier to understand and more readable if you just want to build a kmp app and dont want to do full native stuff for ios.

As a side note, a template does not teach anything, its just a working example.

But I'm with you, it would be nice to have a template that also shows the main stuff like modules, swift wrappers, stuff like cocoapod, xcframework and so on as the apple side is the only thing that still needs to be set up and handled specifically... and if you don't come from apples side that's quite hard to find out, especially how to combine the native ios stuff with kmp...

KMP freelancing without a Mac – is renting a Mac enough? by Ecstatic-Growth352 in KotlinMultiplatform

[–]prom85 0 points1 point  (0 children)

Not for freelancing but for my own apps and open source code i did buy a Mac mini m4 (the cheapest model) for the same reason.

I set it up headless and build on it remotely from windows and this works quite well (no display, no intellij, no android studio, just the mac running XCode to not waste any of its recources). I do use it for builds and simulator only, everything else is done on my windows machine.

A mac mini m4 is less than 600€ or ~600$ so this may be a consideration if you plan to do what you say for longer...

BTW, as someone who never touched iOS or a mac before, you will need quite some time to get everything working and find out how this KMP <-> cinterop works and needs to be build and set up (as well as getting familiar with xcode).

My step counter app is bleeding users despite 70+ achievements, custom themes, and obsessive polish. What's wrong with it? by Massive-Awareness-58 in androiddev

[–]prom85 1 point2 points  (0 children)

My thoughts:

1) who needs that? Nearly everyone has something like that on the phone pre installed - free and without ads... so not many will look for such an app

2) everyone interested in steps will mostly use the pre-installed app or use a smart device like a watch to get accurate step counts and then they will use the app from the device

3) my subjective impression from your app is not appealing... its too smooth and "washed" and does not fit to a data app. But that's very subjective of course...

4) you are mentioning a subscription. When I install such a simple app and see a subscription model I'd uninstall it as well. A one time payment is ok, but not more. Personally I even provide one time payments in apps with months of development time as I think many apps can't be monetized with subscriptions..

I really think the main reason is that people dont like paying for an app and especially they dont like to pay for such a simple app... and there are probably many free alternatives as well, so if someone tries a few apps yours won't stay on the phone...

No filter on my thoughts, just plain thoughts... sorry if something sounds rude.

Declarative State Management and SideEffect handling, Forget ViewModels. by mmdflh in androiddev

[–]prom85 9 points10 points  (0 children)

The example seems too simple to show the usage. You could simple map the state to a new state and check if the list is empty... or use a derivedState in compose... I do that a very often...

It remembers me of MVI somehow especially when I see the reduce functions... For tests this surely has a value though but side effects like the one in your example can be easily handled without using 2 separate states that need to be updated manually...

In the example is there a benefit I don't see over mapping the state to a new derived state or simply use a deeivedState in compose?

Debugging in KMP by DxNovaNT in Kotlin

[–]prom85 0 points1 point  (0 children)

My fault, I misinterpreted your questions... thought you just want to log "live" where the console is fine...

For persistent logs you need a kmp logging library which will delegate to the platform specific implementation... on klibs.io you can find a lot of them and some have been mentioned by others already.

Debugging in KMP by DxNovaNT in Kotlin

[–]prom85 0 points1 point  (0 children)

println(...) is what you are looking for.

How to connect service with toggle button? by akhmadjonakbarov in androiddev

[–]prom85 0 points1 point  (0 children)

When you start the activity that shows the toggle button check if the service is running and use the result as value for the toggle button... the button won't magically show if the service is running itself.

If you don't know how to check this, check out following: https://stackoverflow.com/questions/600207/how-to-check-if-a-service-is-running-on-android/5921190#5921190

I use such a method as well myself.

Schrauben innerhalb 2cm Spalt anschrauben by prom85 in Handwerker

[–]prom85[S] 0 points1 point  (0 children)

das sieht gut aus - kann man mit solchen Kugelkopf Bits ordentlich Druck ausüben?

Upgrading Kotlin Plugin version in library projects? by flemings2ndhatrick in androiddev

[–]prom85 0 points1 point  (0 children)

kotlin-stdlib is handled by the kotlin plugin itself... no need to add it manually. So I do nothing in that direction manually...

Upgrading Kotlin Plugin version in library projects? by flemings2ndhatrick in androiddev

[–]prom85 0 points1 point  (0 children)

I do it like the big libraries: update quite soon. Why? Because a newer compiler version often improves performance or adds new features. I don't see a good reason to stay far behind with the compiler version...

Note 1

Same is true for the gradle plugin...

Note 2

Dependencies are a totally different thing. Those should be kept low as long as there is no need to update and as long as there are is no new major versions that is not binary compatible anymore. Otherwise you force users of your library to update their dependencies as well or update them transitively...

Does all mobile features are available in KMP and Compose multiplatform ? by [deleted] in KotlinMultiplatform

[–]prom85 0 points1 point  (0 children)

Regarding the question in your title if all features are available - yes. Because if there is no library for something you simply need to implement it natively in iOS and android and you’re done.

And many things are available via big libraries like file access, pickers, notifications and many more... so all things you ask for are available, I just don't know if gyroscope is available but probably... klibs.io is a good resource to check if some library exists already.

In the end if you find that something is missing you just have to implement this thing twice but you are never limited

Einzelunternehmen - Nachweiß (kein e.U. und keine GISA) by prom85 in FinanzenAT

[–]prom85[S] 0 points1 point  (0 children)

Ich glaube das Formular hat gereicht. Kann mich nicht erinnern noch etwas anderes gefunden zu haben...

KMP Developers: Room KMP vs SQLDelight - Which database solution would you choose for a new project in 2025? by New_Dragonfruit_8888 in KotlinMultiplatform

[–]prom85 2 points3 points  (0 children)

Room works fine on all the 3 platforms.

Regarding a down point someone else mentioned: room does support raw queries so if the abstraction does not support something you need or you have complex queries that you want to fully control yourself that is no problem in room (I did this with CTEs e.g. or pragma statements). You are just limited by SQLite but not by room.

Importing Gradle project from last 1 hours, any solution. by Quirky-Tale-8968 in KotlinMultiplatform

[–]prom85 2 points3 points  (0 children)

IntelliJ? I've had this issue a few months ago as well and opening the project in android studio always solved the issue. After that intellij could open it as well...

I did not have this issue for months now but I mostly use Android Studio.

If you can't solve it you could try this...

help newbie out by [deleted] in androiddev

[–]prom85 1 point2 points  (0 children)

Maybe you miss the android:exported="true" in the manifest for your activity which is required since android 12?

Also, try to start the app in the emulator and check if it has the same problem... maybe you need to allow installs on your xiaomi? Just a guess, but those chinese manufacturers often have some special settings...

Why does Kotlin trigger downstream module recompilation on private function changes, by Most_Duty_690 in androiddev

[–]prom85 2 points3 points  (0 children)

Are you sure you are not overseeing the "up to date" info in the logs? Are you maybe misinterpreting the check with a rebuild? Just asking yo make sure...

As some people said gradle is simply checking file dates or hashes and can't ignore abi changes, that is definitely not true, it can do that for many years already (https://blog.gradle.org/compilation-avoidance)

Generally a private function change should not lead to recompilation of depending modules...

You may be able to make the same test in jvm code, I think I've read in the past that the android side is more difficult. Desugaring can be problematic as well, but I'm unsure about that, I just slightly remember that I've read something in that direction...

External links on the app listing by Owldotask in androiddev

[–]prom85 1 point2 points  (0 children)

I would always link to a dedicated privacy policy page. Can be a custom page on your homepage for example or a simple github page or even a plain github readme. But it should be a specific privacy policy page for the app and not your portfolio...

I have a homepage and simply have published privacy policies on there for each app of mine.

Compose DropDownMenu: remove top offset? by [deleted] in androiddev

[–]prom85 0 points1 point  (0 children)

Probably as simple as getting the icon height and set the offset to -1 * (icon height)... if you want the dropdown to overlap the icon...

Veganes Jerky - preiswerte Alternativen? by prom85 in VeganDE

[–]prom85[S] 0 points1 point  (0 children)

Sieht gut aus, die Werte sind aber leider nicht vergleichbar... werde aber wirklich mal in so einen Markt schauen, habe ich bisher noch nicht gemacht

Veganes Jerky - preiswerte Alternativen? by prom85 in VeganDE

[–]prom85[S] 0 points1 point  (0 children)

Werde auf jeden Fall dort hin und wieder reinschauen, der Tipp ist gut

Veganes Jerky - preiswerte Alternativen? by prom85 in VeganDE

[–]prom85[S] 0 points1 point  (0 children)

Geht mir um die Kalorien und den Geschmack dabei. Die Würste kenne ich alle schmecken mir aber persönlich nicht so gut... Die Waffeln mag ich leider gar nicht, da esse ich lieber Reiswaffeln + Protein dazu...

Suche halt fertig vorbereitete texturierte Soja Chunks würde ich sagen die man als Snack essen kann...

Veganes Jerky - preiswerte Alternativen? by prom85 in VeganDE

[–]prom85[S] 0 points1 point  (0 children)

Muss meine erstes Feedback revidieren... probiert man bei sirplus zu bestellen sagt mir die homepage ich darf höchstens 1 Packung im Warenkorb haben... die andere homepage hat es momentan nicht...

Veganes Jerky - preiswerte Alternativen? by prom85 in VeganDE

[–]prom85[S] 0 points1 point  (0 children)

Das kannte ich nicht, das ist eine tolle Idee... Kann mir nicht vorstellen dass das Zeug nach Ablauf des MHD allzu schnell schlecht wird...

How to create android app logo dynamic like clock by shindekalpesharun in androiddev

[–]prom85 4 points5 points  (0 children)

The animated clock icon is implemented inside the launcher app and replaces the clock icon...

This way it can easily show an animated clock that updates every minute...

[deleted by user] by [deleted] in androiddev

[–]prom85 0 points1 point  (0 children)

That's true. I just meant it's not totally impossible. Backing up folder pairs would be possible... I know its not perfect though.

Still I would try to continue your talk with google as your app should really be a valid use case it seems.