Bonjour a toutes et tous,
J’ai appris depuis peut l’existence de l’application StreetComplete et de Vespucci, mais c’est dernière son disponible que sous Androïde.
Question 1 : Existe t’il une alternative à StreetComplete ou Vespucci sous IOS (Apple) ?
Question 2 : Comment on pourrais modifier des attributs sur OsmAnd ?
Merci d’avance.
pl6025
March 9, 2022, 2:56pm
#2
SUPER_HEROS_67:
StreetComplete
Pour StreetComplet, il n’y a pas d’équivalent pour l’instant :
opened 12:07PM - 11 Jun 20 UTC
help wanted
Quite a few times, it has been requested that an iOS version of this app is made… available. This ticket shall serve as an explanation why this isn't possible but also as an entry point for why it is perhaps possible after all, but with enormous effort. So if you are an iOS developer and interested in creating an iOS version, also read this.
## It's not possible
StreetComplete is developed as a native Android app and iOS is a completely different platform. There is no compatibility at all. Usually, if you see an app that is both available for Android and iOS, it is either not native (for example, just a website being displayed within an app or using a cross-platform framework such as ReactNative) or you are looking at two completely different applications, likely developed by two teams. This is my experience as a professional app developer.
## Maybe it's possible
So, this is interesting if you are an iOS developer yourself. It is not planned from my side to do this.
There are two technologies that are worth looking at if one wants to embark on the endeavour to port this app to iOS:
1. [Kotlin Multiplatform Mobile](https://kotlinlang.org/lp/mobile/)
2. [Multi-OS Engine](https://multi-os-engine.org/)
### Kotlin Multiplatform Mobile
This app is written in Kotlin, a modern programming language that is quite similar to Swift. Originally, Kotlin was built to run on the JVM, but by now, it can be transpiled into JavaScript, and with Kotlin Native, also to machine code, just like Swift.
This makes it possible to write iOS apps with Kotlin. Thus, Kotlin code of this project that is not dependent on any Java library (Http library etc) and also not dependent on the Android platform (UI, sensors, persistance management etc) could be used 1:1 in an iOS port of this app.
Such "pure" Kotlin code would be put into a common module that is shared between the iOS and the Android app.
However, not a big percentage of the total code in this project is such pure Kotlin code that has no dependencies to any other Java or Android dependencies. Most of the iOS app would still need to be written from scratch, in Swift or better in Kotlin, if possible. On the other hand, some of the code that is currently dependent on some Java library or Android dependency could be changed to not be dependent on it directly anymore but on a wrapper interface. Then, only that wrapper would need to also be implemented for iOS.
### Multi-OS Engine
The MOE is a little different approach. So, the JVM of Android is called ART and is open source. On Android, we write apps that run within this virtual machine provided by the Android system. For iOS, there is no such virtual machine, apps run natively. But, what we could do, is to write an app that comes bundled with the ART virtual machine and does nothing else than to load the provided JVM bytecode. This is the approach of MOE.
In other words, ART is automatically bundled in the app so that one can write an iOS app in the Java environment, making use of the Java ecosystem and libraries. iOS platform dependencies are accessed over an interface provided by MOE.
The difference to the Kotlin Native approach is, that Kotlin code that depends on Java libraries can also be moved to the common module that is shared between the iOS and the Android app. The only things that cannot be shared is code that is dependent on the Android platform, such as UI <strike>or currently persistance with SQLite (because it uses Android dependencies)</strike>.
En effet, certaines personnes se demandent s’ils peuvent recoder pour iOS et garder le même nom et la réponse a été apportée il y a seulement 13 jours.
vinber
March 9, 2022, 3:34pm
#3
Commencer par activer le plugin de contribution à OSM et renseigner son compte OSM
1 Like
Comment que l’on renseigne son compte OSM dans OsmAnd ?
J’ai télécharger le plugin depuis l’application, mais je sais pas comment on se connecte à son compte OSM.
Merci beaucoup, je ferais ça ce soir et je ferais le test.