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.

Reply via email to