On 30/12/13 09:33, Zhu, Yongsheng wrote:
Hi, Max and Kenneth
Thanks for the comment. Answer your two questions in one mail:
There is a not-insignificant group of app developers who *prefer* to
work from the command line, but (iirc) to do so required installing
the IDE which was a large download and install, and mostly useless for
the cli developer. Furthermore, it was a significant effort to develop
the tools such that we could avoid using java (etc), and instead used
node.js and grunt. NB, thanks go to Elliot Smith for that effort.
Avoid using java doesn't make sense. In my opinion, the tool from
Elliot Smith tries to use nodejs/grunt to replace python, not
java/javac related tools. That's because all web apps are needed to be
built as native applications so JDK/Android SDK are always needed.
Of course, you can ask him yourself and I don't want to put words into
his mouth, but IMO that's not quite right.
Elliot has developed tools *both* to avoid using python and to avoid the
need to download and install a huge IDE.
Of course, in the latter, it was for Tizen and so, no, Java was not seen
as 'needed' in that case (ie it was introduced unnecessarily because of
the use of Eclipse). The situation is different with Android, of course,
though having to know Java is not a requirement for the HTML5 app developer.
IINM, some Android tools use Java are all nicely self-contained, so I
don't see any particular problem with developing tools in Java if are
only for Crosswalk/Android if they are also easily deployed into the app
developer's environment (eg into grunt/etc). However, I see that as a
'bad idea' because I suspect that will just result in them seeping into
the other Crosswalk targets that don't need Java at all.
I suggest keeping the use of Java firmly inside Eclipse and developing
all other tools in whatever is used for all targets.
Remember that my comments from from frustrations during the first
several months of developing on Tizen. During this period, some of us
app developers were repeatedly switching in-and-out of Eclipse because
we wanted to use our preferred tools (eg editors and other unix tools)
but had to use Eclipse to package and 'run on device'.
Eventually, using the command line became much more friendly so we could
rid ourselves of Eclipse in day-to-day work and just use it for
'reference' (usually to find out what the latest format is for
config.xml). Quite a painful process, all-in-all.
Anyway, my main points are :
1) avoid adding languages/etc *unnecessarily* into the app developer's
environment (no real need for python, imo),
2) try to choose tools the app developer is likely to already
have/understand rather than inventing/using new ones,
3) make tools that are easy for the app developer to integrate into
their existing environment - eg encapsulated, stand-alone,
single-purpose, command-line tools
4) use those same command-line tools from within the IDE, so the two
environments don't become fragmented (ie avoid the situation where "this
works in the IDE, but when I use the cli tool, it doesn't").
IMO, Elliot has a good handle on the needs of the non-GUI developer and
so my recommendation would be to consult with him in order to cover both
groups of people. IIRC, he once pointed out how well Google have done it
and so we could probably do likewise.
WRT the use of Python, yes, I don't see why that has to be introduced to
my development environment. As far as I can see, the only reason to use
it is because it is the preferred tool of people developing the sdk (ie
quite a random choice - I wonder why not C++?) - little consideration
for the app developer who likely has to use/integrate/understand it.
However, I think it's somewhat tangential to my point above, so I'll
leave that for another day.
Max.
Let's start by providing excellent CLI tools and then we can build on
top of that. It is not like Eclipse is the preferred tool for web
developers and we want to allow integration with as many IDE/editors
as possible, not just Eclipse (which even Android is moving away from
- hence Android Studio).
We have two kinds of tools: python and nodejs. We're keeping improving
and I don't see a big gap there especially for python based. We could
do them at the same time. If you think there are lots of gaps for
packaging tool, please let me know. For IDE, we should integrate with
upstream. Right now Android studio is not mature enough, but we need
to investigate it and eclipse based solution.
Yongsheng
*From:*Crosswalk-dev
[mailto:crosswalk-dev-boun...@lists.crosswalk-project.org] *On Behalf
Of *Max Waterman
*Sent:* Wednesday, December 25, 2013 9:32 PM
*To:* crosswalk-dev@lists.crosswalk-project.org
*Subject:* Re: [Crosswalk-dev] Intent to Implement - Build WebApps
with Eclipse for Crosswalk on Android
My only thought on this - as an html5 app developer - is to try and
avoid the situation we found ourselves in with the Tizen IDE (also
based on Eclipse).
There is a not-insignificant group of app developers who *prefer* to
work from the command line, but (iirc) to do so required installing
the IDE which was a large download and install, and mostly useless for
the cli developer. Furthermore, it was a significant effort to develop
the tools such that we could avoid using java (etc), and instead used
node.js and grunt. NB, thanks go to Elliot Smith for that effort.
I hope that the Crosswalk IDE can build *on top of* command line tools
so that there is no fragmentation between the cli tools and the
implementation available in Eclipse. Unfortunately, the tools are
already in python which (imo) is not a good choice for integration
with web developers' environments, but at least they are command line
tools.
IINM, the Android SDK/IDE is built up in this same way - ie the IDE
uses command line tools in the SDK to do the work, so that the IDE can
be avoided completely, if the developer so desires. I suggest we do
likewise.
Thanks for your consideration on this matter.
Max.
On 25/12/13 14:10, Wu, Donna wrote:
*Description:*
Currently, web developers can only use command-line tools to
package their Crosswalk WebApps, e.g. make_apk.py for Android. Our
goal is to enable building crosswalk WebApps in Eclipse. With this
feature, developers create an Crosswalk project and edit the Web
stuff in Eclipse then be exported as a required package, for
example "*.apk" for Android. This feature can be extended to all
platforms in the feature, but we want to enable it for Android for
the first step.
*Affected component:*
It will be a sub-project under crosswalk-project, so no
component in current Crosswalk repo will be affected.
*Related feature: (Jira ID)*
https://crosswalk-project.org/jira/browse/XWALK-636
*Target Release: (Crosswalk N)*
Crosswalk 5
*Implementation details:*
The general idea is that, we provide an Eclipse plugin to add a
new project type. Developer need to download the plugin and then
can create the new type of project(crosswalk project), the project
can be edited and then packaged to signed APK. As we need to use
libs and tools from Android SDK, so our Eclipse plugin need
Android SDK as its precondition. So ADT bundle version or Eclipse
and ADT plugin version will be required by the plugin.
1.stand-alone project type -- (required)
Just a expose the web stuff to the developer, use Crosswalk
manifest.json for project configuration. The directory tree of the
new project just like XPK package. Developer will not see
generated Activity, cannot edit Java code, they can only edit the
web stuff in Eclipse. Web stuff will be wrapped with Java code
when packaging and exporting the project.
2.embedded or shared mode supporting -- (required)
developers can select which mode they want to package the project
in an exporting dialog. For embedded mode, developer need to
specify needed resources and libs from local disk or maybe an
on-line version.
3.supporting Crosswalk permissions -- (required)
Crossealk manifest.json will be used to configure the project,
Crosswalk permissions will be used to authorize special access
ability to WebApp, and these used permissions will be recorded in
manifest.json and will be mapped to Android permission after
wrapping and packaging the project. Currently the map haven't be
determined yet, but we will catch up the newest map.
4.different arch supporting -- (x86 required, arm Low priority)
this just make sense to embedded mode. All possible options will
be listed for selection in the exporting dialog. Error will be
through if the required crosswalk library cannot be found in the
specified resource and libs directory described in item 2.
5.various application source supporting
option1: new project created from Eclipse -- (required)
option2: import from a local directory with manifest.json --(required)
option3: import from XPK package -- (low priority)
6.external crosswalk extension supporting -- (Low priority)
developers need to specify external crosswalk extensions when
creating the project. First step, we will just support compiled
extension(directory with *.js, *.jar, *.json), in the future raw
Java files may be supported.
_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
<mailto:Crosswalk-dev@lists.crosswalk-project.org>
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev
_______________________________________________
Crosswalk-dev mailing list
Crosswalk-dev@lists.crosswalk-project.org
https://lists.crosswalk-project.org/mailman/listinfo/crosswalk-dev