Hello,
On Tuesday, March 10, 2015 at 8:12:38 PM UTC-7, Daniel Solano Gómez wrote: > > Hello, > > > On Tue Mar 10 01:30 2015, Devang Shah wrote: > > Hello Daniel > > > > Thank you for the quick response. Just to clarify and see if my > > understanding is correct. Please correct if I am wrong. > > > > On Sunday, March 8, 2015 at 10:35:57 PM UTC-7, Daniel Solano Gómez > wrote: > > > > > > Hello, > > > > > > Thanks for your interest. > > > On Sun Mar 8 17:17 2015, Devang Shah wrote: > > > > This message is intended for suggester Daniel Solano Gómez, to > initiate the > > > > discussion on the project mentioned in the subject line. Please feel > free > > > > to jump in if you feel/wish to answer the questions or clarify > points. > > > > > > > > I am interested in developing a plugin for the Clojure which will > work in > > > > conjunction to the Android plugin. As I understand the project idea, > > > > > > > > TODO: > > > > 1. Develop functionality into the lein-droid (as an independent > plugin) to > > > > support Gradle build system. > > > > 2. The new functionality has to be compatible with the current > Android > > > > plugin in lein-droid. > > > > 3. Develop a "superset" and independent plugin to support build > system and > > > > integration of Clojure and Android. > > > > 4. Since the new plugin will be integrated into the lein-driod, also > modify > > > > lein-droid to support the new plugin. > > > > > > > I think these are the right steps, as a whole, but I think I would > > > tackle them in the following order: > > > > > > 1. Develop a Clojure plug-in for the Gradle-based Android build system > > > > > The new clojure plug-in will be sister project of the lein-droid project > > implementing same features (more or less) as in lein-droid. But, for > Gradle > > based Android project. That is, generate a Gradle project for Android > with > > build.gradle and other files. Is that right? > > I am thinking of it from a slightly different point of view. First, > start with a plug-in that works with Android's native Gradle-based build > system. This essentially would just add Clojure compilation support for > Android, but doing it in such a way so that all of Android's build > features now support Clojure as well. At this point, lein-droid is a > completely separate project, unaffected by these changes. > > > > > > 2. Examine lein-droid's features and see which can or should be > handled > > > by the Android build system > > > > > other end: if required modify Android build system so that the pluin-in > > that is developed in step one is integrated successfully with the > Android > > build system. Question: What is this Android build system that we refer > to? > > The idea is this: Android moved from an Ant-based build system to a > Gradle-based build system so that, amongst other features, it was more > easily extendable. Thus the Clojure plug-in for Android/Gradle fits in > with that philosophy. > > Some of the features that the new build system supports are differently > configured debug/release builds. lein-droid also supports that > functionality. Could we make lein-droid become a user-friendly > shell around the Android build system? Clojure users are comfortable > with Leiningen, so that's an important reason why lein-droid is > essentail. However, lein-droid was created before the new build system, > so it could potentially be even more powerful if it could leverage the > Android build system by treating it as a library. I haven't fully > investigated the extent to which this is feasible, but I think it's a > good direction to go. This would decouple lein-droid from a lot of > implementation details about how Android projects are built. > > Ultimately, if lein-droid could use what's in a project.clj file to > generate a build.gradle file or configure the Gradle build at runtime, > that should give use the best of both worlds: Clojure-friendly project > definition and the full power of the native Android build > infrastructure. For example, Leiningen profiles could map to Android > build flavours. > > > I hope this helps. > > Sincerely, > > DanieL > Now, to get familiar with the lein-droid and the ecosystem, I have gotten clojure, lein-droid, and Android SDK on my machine. Anything that you'd suggest so that I get more familiar with the entire ecosystem and might be useful to understand what I need to do in order to accomplish this project. I think I should start with a hello world project in clojure and try to build it with lein-droid, and see what files are generated and compare it against a same hello world project in Android Studio or some SDK for Android. Please advise. Thanks. > > > 3. Rewrite bits of lein-droid to use the new build system > > > > > > Aside from the work on developing the Gradle plug-in, the key bits is > > > figuring out exactly what lein-droid does and how that maps onto what > > > the new Android build system does. Additionally, would it be possible > > > to generate a build.gradle file from the project.clj? > > > > > > > Questions (Project specific): > > > > 5. Can you elaborate "Unfortunately, because the Android plugin > replaces > > > > the Java plugin, the current Clojure plugin doesn't work for > Android." What > > > > do you mean "replaces the Java plugin"? > > > > > > Gradle comes with a plug-in to compile Java. Clojuresque, the Clojure > > > plug-in for Gradle depends on this Java plug-in. Unfortunately, the > > > Android build system does away with the Java plug-in (the Android > > > plug-in is in charge of compiling Java), so Clojuresque doesn't work > > > there. This is why a new Clojure plug-in is needed. > > > > > > > Also, can someone highlight in brief some features (of Gradle > plugin) that > > > > we are planning to support? Any known features that are not > supported by > > > > the current build system? > > > > > > Ideally, you could just include the Clojure plug-in into an Android > > > build.gradle, and it will handle all Clojure sources similarly to > > > Android Java sources are handled (build types, etc.). It should also > > > present all the necessary options to configure the plug-in, such as > > > source directory locations, Clojure compiler options, etc. It would > be > > > good to review what Clojuresque supports. > > > > > > > Can you please elaborate the last line "just include the Clojure plug-in > > into an Android build.gradle... "? I mean why do we want to handle all > > Clojure sources? If we are develop the plug-in similar to lein-droid, > > shouldn't it be able to generate gradle based Android project. (I am > sorry, > > I am new to Gradle). Please correct if I understand it wrong. > > > > > > Questions: (GSoC application specific): > > > > 6. Where can I get the template for the application? > > > > 7. What are all the things expected to be addressed in the > application. > > > > > > > > > Please refer to: > > > > http://dev.clojure.org/display/community/Student+application+guidelines > > > > > > Again, thank you for your interest. Please feel free to post to this > > > e-mail list and the clojure-android list for more feedback on your > idea. > > > > > > Sincerely, > > > > > > Daniel > > > > > > > > > > > Thank you. > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.