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

> > 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