ankushg
10/02/2019, 8:24 PMexport
to bundle all the separate projects together.
Throughout our Kotlin codebase we have packages like com.quizlet.module1.models.StudySet
and com.quizlet.module2.models.StudySet
where the implementations of the StudySet
classes are a bit different depending on the module. This is currently causing issues for us because one of them gets mapped to QuizletFramework.StudySet
and the other to QuizletFramework.StudySet_
A few questions:
1. Am I correct that we have to build one mega-Framework instead of just having multiple frameworks with different names to avoid these collisions?
2. Is it potentially possible to have classes from each module prefixed with a unique value when exporting into one framework?
3. Is there any way around name collisions besides just ensuring that every class has a unique name?
4. Is there a way to enforce that there are no collisions at compile-time instead of running into the issue once we try consuming the framework later?kpgalligan
10/02/2019, 8:32 PMankushg
10/02/2019, 8:55 PMKonstantin Petrukhnov
10/03/2019, 7:49 AMKonstantin Petrukhnov
10/03/2019, 7:52 AMKonstantin Petrukhnov
10/03/2019, 7:55 AMKonstantin Petrukhnov
10/03/2019, 7:57 AMankushg
10/03/2019, 2:25 PMStudySet
and StudySet_
classes from ObjC/Swift. Dealing with the underscores is a very unpleasant experience for developers who have nothing to do with writing KMPP, and it is definitely hindering adoption at our company.
It’s also very annoying to have to rename classes to be globally unique across all modules when many of the Kotlin modules are completely unaware of each other and its just the one big bridge project that knows about thema ll.
In a production situation with multiple modules being worked on by multiple teams, how is Team A supposed to know that Team B has a class with the same name?Nikolay Kasyanov
10/14/2019, 3:49 PMkpgalligan
10/14/2019, 3:52 PMNikolay Kasyanov
10/14/2019, 3:53 PM