[Android Software/Hacking General [Developers Only]] Androguide.fr:
Development news

Some of you who follow me on Google+ may know that I'm in the process of re-writing the app from scratch.

It's a long process and I'm far from done, so don't expect to see the remake too soon, and please, no ETA.

However, I want to share some exciting news about it with you.

1. Third-party plugins support

Yeah, you read that right, the next version of Pimp My Rom will allow you to write & distribute your own plugins to expand the collection of tweaks available, add some device-specific ones, etc...

Those plugins are extremely easy to write and are fully XML-driven, this means that you don't need any Java development skills (or even hardly any development skills at all, since it is so straight-forward as you'll see in the examples below),

the big abstraction layer I've built to bridge your XML file to my Java code takes care of everything for you.

I think it'll be easier to explain and to understand with an example, so we'll say that:

You want to add a build.prop tweak to the Network & Internet section of Pimp My Rom, and you want it to have a SeekBar+EditText combo for the user to control its value.

The build property you want to add is ro.idontcare.whatever, which takes an integer value between 0 and 100, and is expressed in megabytes (MB).

If ro.idontcare.whatever isn't currently in the build.prop of the user, display the current value as 50 (if it is present, the current value will automagically be read from the build.prop)

The tweak title will be "My Test Tweak"

The tweak description will be "This is a third-party, pluggable test tweak"

So in this case, you'll write the following XML file and put it in /sdcard/PimpMyRom/plugins/myplugin.xml:

The DSL (tag names & keywords specifically) may change before release, there will be a full documentation

[COLOR="teal"]<buildprop>[/COLOR]
[COLOR="Teal"]<section>[/COLOR]network[COLOR="teal"]</section>[/COLOR]
[COLOR="teal"]<name>[/COLOR]My Test Tweak[COLOR="teal"]</name>[/COLOR]
[COLOR="teal"]<description>[/COLOR]This is a third-party, pluggable test tweak[COLOR="teal"]</description>[/COLOR]
[COLOR="teal"]<prop>[/COLOR]ro.idontcare.whatever[COLOR="teal"]</prop>[/COLOR]
[COLOR="teal"]<control>[/COLOR]
[COLOR="teal"]<type>[/COLOR]seekbarcombo[COLOR="teal"]</type>
<minvalue>[/COLOR]0[COLOR="teal"]</minvalue>
<maxvalue>[/COLOR]100[COLOR="teal"]</maxvalue>
<default>[/COLOR]50[COLOR="teal"]</default>
<unit>[/COLOR]MB[COLOR="teal"]</unit>
</control>[/COLOR]
[COLOR="Teal"]</buildprop>[/COLOR]

And this is litterally all you have to do!

Now just close the app, restart it, go to the Network & Internet section, scroll down, and below the built-in tweaks will be your new one(s) :

Of course, you'll be able to do the same for init.d scripts, sysctl commands, and basically any terminal command (this obviously is a security breach though, so there will be a review system - probably gerrit - for plugins before the app accepts to pick-it-up, and/or an option in the app to allow it to pick-up unreviewed plugins).

Plugin files can contain as many tweaks as you want, contain different types of tweaks etc...

2. Additionnal features & plans

These are things I haven't started working on yet, but I most likely will once the plugin system is fully implemented and solid enough.

An open-source "blank" version of Pimp My Rom, allowing you to build your own tweaking app just with PMR's XML plugin configuration DSL.

This will include the possibility to rename the app, change the icon, the tabs title etc... all via the same xml plugin system you just saw.

If you're a ROM developer and you want to build your own control app for your ROM's tweaks, this is a great opportunity to do so with little effort and no programming knowledge.

By expanding on this plugin system, the app will be able to dump your current configuration to a plugin file for easy backup/restore between flashes and/or profile sharing

An in-app plugins catalog which allows you to download and apply reviewed plugins directly

Google Cloud Messaging (GCM) implementation for a seamless tweaking mode (apply a tweak on one device and it's simultaneously applied on all your devices)

<!-- YOUR IDEAS HERE -->

3. App Performance

I can promise you that the app's performance is otherworldly, my old code was hideous, I was blocking the UI thread half of the time, doing nasty n00bs mistakes etc... When I look at some parts of the current PmR's code, it makes me want to beat myself-up^^

I guess it's what it takes, writing a lot bad quality code before writing some normal quality code and maybe one day some high quality stuff I hope.

Anyway, all the freezing when applying a tweak is gone and most janks are too. The UX is really a hundred times smoother.

You can see and read a bit more about the rebirth of Pimp My Rom in this Google+ post: https://plus.google.com/u/0/116104837766524942436/posts/eHErMxkE5XR

If you have ideas and feature-requests, please express them, they could make their way into the app.