Affichage des articles dont le libellé est eclipse. Afficher tous les articles
Affichage des articles dont le libellé est eclipse. Afficher tous les articles

vendredi 23 septembre 2011

Third-party developers experience... Where are we ?

Apple iOS application-centered focus and marketing made third party applications ecosystem a decisive aspect of user capture.  Solution life-cycle and attractiveness are increased by external developers adding each and every use cases imaginable. Even digitally farting.
Thus recruiting third party applications developers is an increasing challenge for a platform competitiveness and userbase/contributions growth.

The monetary insensitive of commercial platforms is certainly a decisive argument, but we may have better to propose with our warm and human-sized community, independence vis-a-vis a single provider, good-doing and ethical principles. And beer events.

The introduction to our technologies and community should strive to be as painless and entertaining as possible while matching the developer knowledge-thirst, a common disease upon us and a huge motivation catalyzer.

A fun, lean and streamlined developer experience may attract the more feature-oriented developers that enjoy watching their ideas materialize as an applications. From project bootstrap to installation on user system.
Those more into technology would enjoy our mature but ever-growing sets of tools, libraries and services.
Picking their interest is an occasion to convince them of the benefits of free software development and maybe have them help improve our common playground.

It is my opinion that the current offering of Gnome in that regard is not as good as it could be. The learning curve to become a proficient application developer is quite steep beginning by choosing a language and setting up a development environment. Coding, scheduling, sharing, testing and distributing an application, all suffer from barriers and complexity. But that can be improved, right ?

By digging into following platforms, I'll try to identify what helps makes a good developer experience, or a great one even.

  • Apple iOS: Great documentation and tooling. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. Code is written in Objective-C/Cocoa using the XCode IDE. No real 3rd party libraries community.
  • Google Android: Regarded as practical API-wise and well-documented. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. Using of the Java language, it benefits from its gigantic set of tools (IDEs, build bots, continuous integration) and libraries 
  • Eclipse RCP + XScalaWT: Provide a great module mechanism (OSGi) and a lot of services commonly found in applications. Self-contained easy-to-setup SDK that handle application life-cycle from development to distribution. A rich ecosystem of 3rd parties modules avoid having to reinvent the wheel. Obviously development happens in Eclipse IDE in any language supported by the JVM. Scala peppered with a nice SWT DSL will be used. 
  • the “Web Platform”: Applications development using our century franca-lingua: HTML/CSS/JS. With years of omnipresence, tools, libraries, documentation and community are unmatched. Still, application development requires system resources access, but not everything is standardized. Also javascript might prove a constraint for security, proper testing, static analysis and performance.
  • HP WebOS: Based on web technologies, both Mojo and Enyo provide access to lower-level services to webby UIs. Offer great tooling and distribution channel (but nobidy on the other end)
  • Gnome: versatile and complete SDKs, without much constraint in term of technology and possibilities. Might lake a coherent developer story with tools, conventions and processes to guide the developer
  • Qt: not experienced yet.

For each, I'll share the full process of bootstrapping, creating and distributing a simple app and present thee communication channels, documentation, processes and tools. Good ideas might be picked here and there.
Then, I’ll match the findings with the current Gnome offering, with *personal* opinions on opportunities to fill holes.

vendredi 8 avril 2011

Push your Eclipse Mylyn activity to PHPReport... automatically.

Following my awesome colleagues announcements, here is my smaller contribution to make life of lazies a bit better.

In my day-to-day routine I heavily rely on the Eclipse Mylyn tools to schedule my development activity, communicate with my fellow developers via Bugzilla and focus on the task at hand. (I'll explain soon how Eclipse is the new Emacs, stay tuned)

Anyway, my company (the awesome Igalia) uses PHPReport to track work-hours of its employees. This is a requirement to account overtime and vacations of such a worldwide-spread community of people.

The lazy-ass I am often (read always) forget to fill my activity there. I guess can forget about travelling for the next 10 years.
PHPReport already integrates with Project Hamster but nothing existed for Mylyn until now.
So I took a day or two to make the process of tracking time fully automatized based on the Mylyn records of tasks activations.

Pictures being worth a thousand words, here is a short clip of its current state.



original file: http://people.igalia.com/amazari/mylyn-phpreport.webm


Following updates will hopefully remove the need to give credentials to the plugin by using the user's web browser cookies/session. Also the secrets will be saved encrypted in the Eclipse Secure storage.

You can easily install it by adding http://people.igalia.com/amazari/mylyn-phpreport-latest/ in Eclipse Update Manager.

Sources are available from https://github.com/amazari/mylyn-phpreport .

Suggestions, bug report and coments are always welcome !