UnAngelo blog

…se io fossi un angelo
Subscribe

Thinking Like a Web Designer

September 13, 2011 By: Tim Bray Category: 1

[This post is by Roman Nurik, who is passionate about icons, with input from me and a bunch of the Framework engineers. —Tim Bray]

The number of people working on mobile apps, and specifically Android, is growing fast. Since modern mobile software-development is a relatively new profession, the community is growing by sucking in experts from related domains, one being web design and development.

It turns out that familiarity with web UI development, particularly using modern HTML5 techniques, can be a great primer for Android UI development. The Android framework and SDK have many analogues to tools and techniques in the Web repertoire of HTML, CSS, and JavaScript.

In this blog post, we’ll walk through a few web development features and look for matches in the world of Android UI development.

Device resolutions and physical sizes

One of the most important aspects of both Android UI design and web design is support for multiple screen resolutions and physical sizes. Just as your web app needs to work on any physical display and inside any size browser window, your native app needs to run on a variety of form factors, ranging from 2.5” phones to 10” tablets to (possibly) 50” TVs.

Let’s look at some ways in which CSS and Android allow for flexible and adaptive layouts.

Providing custom layouts for different resolutions

CSS3 media queries allow developers to include additional stylesheets to target different viewport and screen configurations. For example, developers can provide additional style rules or override existing styles for mobile devices. Although the markup (layout hierarchy) remains the same, CSS3 has several sophisticated techniques for completely transforming the placement of elements with different stylesheets.

Android has long offered a similar mechanism in resource directory qualifiers. This extends to many different types of resources (layouts, images or ‘drawables’, styles, dimensions, etc). Thus you can customize the view hierarchy as well as styling depending on device form factor, A base set of layouts for handsets can be extended for tablets by placing additional layouts in res/layout-xlarge or res/layout-sw600dp (smallest width 600 density-independent pixels) directories. Note that the latter syntax requires Android 3.2 or later.

Below is a CSS3 example of how one could hide a ‘left pane’ on smaller devices and show it on screens at least 600 pixels wide:

#leftPane {
  display: none;
}

@media screen and (min-device-width:600px) {
  #leftPane {
    display: block;
  }
}

The same could be accomplished on Android using multiple layout directories:

res/layout/foo.xml:

<FrameLayout>
  <!-- a single pane -->
  <View android:id="main_pane">
</FrameLayout>

res/layout-sw600dp/foo.xml:

<LinearLayout android:orientation="horizontal">
  <!-- two panes -->
  <View android:id="left_pane">
  <View android:id="main_pane">
</LinearLayout>

As a side note, if you plan on creating multi-pane layouts, consider using fragments, which help break up your screens into modular chunks of both layout and code.

There are also other neat ways of using resource directory qualifiers. For example, you could create values/dimens.xml and values-sw600dp/dimens.xml files specifying different font sizes for body text, and reference those values in your layouts by setting android:textSize="@dimen/my_body_text_size". The same could be done for margins, line spacing, or other dimensions to help manage whitespace on larger devices.

‘Holy grail’ layouts

Web developers have long dreamt of an easy way to build a ‘holy grail’ 5-pane layout (header/footer + 3 vertical columns). There are a variety of pre-CSS3 tricks including position:fixed, float:left, negative margins, and so on, to build such layouts but CSS3 introduced the flexible box module, which simplifies this tremendously.

Figure: An archetypal “holy grail” layout

It turns out that grail is pretty holy for Android tablet apps, too, and in particular for tablets held sideways in landscape mode. A good approach involves the use of LinearLayout, one of the simplest and most popular of the Android layouts.

LinearLayout has this neat way to stretch its children to fit the remaining space, or to distribute available space to certain children, using the android:layout_weight attribute. If a LinearLayout has two children with a fixed size, and another child with a nonzero layout_weight, that other child view will stretch to fill the remaining available space. For more on layout_weight and other ways to make layouts more efficient (like switching from nested LinearLayouts to RelativeLayout), check out Layout Tricks: Creating Efficient Layouts.

Let’s take a look at some example code for implementing such a ‘holy grail’ layout on Android and on the web:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/container"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <!-- top pane -->
    <View android:id="@+id/top_pane"
        android:layout_width="match_parent"
        android:layout_height="50dp" />

    <LinearLayout android:id="@+id/middle_container"
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:orientation="horizontal">

        <!-- left pane -->
        <View id="@+id/left_pane"
            android:layout_width="300dp"
            android:layout_height="match_parent" />

        <!-- center pane -->
        <View id="@+id/center_pane"
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:layout_weight="1" />

        <!-- right pane -->
        <View id="@+id/right_pane"
            android:layout_width="300dp"
            android:layout_height="match_parent" />

    </LinearLayout>

    <!-- bottom pane -->
    <View android:id="@+id/bottom_pane"
        android:layout_width="match_parent"
        android:layout_height="50dp" />

</LinearLayout>

Note: Android tablet apps in landscape will generally show an action bar as the top pane and will usually have neither a right nor bottom pane. Also note that the action bar layout is automatically provided by the framework as of Android 3.0, and thus you don’t need to worry about positioning it.

And here’s an example implementation using the CSS3 flexible box model; notice the similarities:

<style>
  html, body { margin: 0; height: 100%; }

  #container {
    height: 100%;
    display: -webkit-box; /* like LinearLayout */
    display:    -moz-box;
    -webkit-box-orient: vertical; /* like android:orientation */
       -moz-box-orient: vertical;
  }

  #top, #bottom { height: 50px; }

  #middle {
    -webkit-box-flex: 1; /* like android:layout_weight */
       -moz-box-flex: 1;
    display: -webkit-box;
    -webkit-box-orient: horizontal;
       -moz-box-orient: horizontal;
  }

  #left, #right { width: 300px; }

  #center {
    -webkit-box-flex: 1;
       -moz-box-flex: 1;
  }
</style>

<div id="container">
  <div id="top"></div>
  <div id="middle">
    <div id="left"></div>
    <div id="center"></div>
    <div id="right"></div>
  </div>
  <div id="bottom"></div>
</div>

Layered content

In CSS, with position:absolute, you can overlay your UI elements. On Android, you can use FrameLayout to achieve this. The child views in a frame layout are laid out on top of each other, with optional layout_gravity attributes indicating alignment with the parent frame layout.

Below is a contrived example of a FrameLayout with three children.

Figure: Example FrameLayout with three children (2 with top-left and 1 bottom-right alignment)

Figure: Isometric view of the example FrameLayout and its children.

The code for this example is as follows:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="300dp"
    android:layout_height="200dp">

    <!-- bottom-most child, with bottom-right alignment -->
    <View android:layout_gravity="bottom|right"
        android:layout_width="100dp"
        android:layout_height="150dp" />

    <!-- middle child, with top-left alignment -->
    <View android:layout_gravity="top|left"
        android:layout_width="200dp"
        android:layout_height="175dp" />

    <!-- top-most child, with top-left alignment →
    <!-- also stretched to fill vertically -->
    <View android:layout_gravity="top|left"
        android:layout_width="100dp"
        android:layout_height="match_parent" />

</FrameLayout>

Scrollable content

HTML, by default, flows in reading order and scrolls vertically. When content extends beyond the bottom of the browser, scrollbars automatically appear. Content panes can also be made individually scrollable using overflow:scroll or overflow:auto.

Android screen content isn’t scrollable by default. However, many content Views such as ListView and EditText offer scrolling, and any layout can be made scrollable by wrapping it in a ScrollView or HorizontalScrollView.

It’s also possible to add custom scrolling to views by using methods like View.scrollTo and helpers like Scroller in response to touch events. And for horizontal, snap-to-page-bounds scrolling, one can use the excellent new ViewPager class in the support library.

Below is an example of a ScrollView containing a single TextView child and the code needed to implement something like this.

Figure: A TextView inside a ScrollView, scrolled about half way.


<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <!-- the scrollable content -->
    <TextView android:layout_gravity="bottom|right"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:padding="32dp"
        android:textSize="48sp"
        android:text="The\nquick\nbrown\nfox\njumps\nover..." />

</ScrollView>

Custom layouts

Sometimes the positioning and layout behaviors you can achieve with CSS aren’t enough to achieve your desired layout. In those cases, developers fall back on JavaScript coupled with absolute positioning to place and size elements as needed.

Programmatically defined layouts are also possible on Android. In fact, they’re sometimes the most elegant and/or performant way of implementing a unique or otherwise tricky layout. Not happy with nesting LinearLayouts for implementing a 2x3 grid of navigation icons? Just extend ViewGroup and implement your own layout logic! (see an example DashboardLayout here). All the built-in layouts such as LinearLayout, FrameLayout, and RelativeLayout are implemented this way, so there generally aren’t the same performance implications with custom layouts as there are with scripted layout on the web.

Device densities

Web designers have long dealt with the reality that display densities vary, and that there wasn’t much they could do about it. This meant that for a long time web page graphics and UI elements had different physical sizes across different displays. Your 100px wide logo could be 1” wide on a desktop monitor or ¾” on a netbook. This was mostly OK, given that (a) pointing devices such as mice offered generally good precision in interacting with such elements and (b) browsers allowed visually-impaired users to zoom pages arbitrarily.

However, on touch-enabled mobile devices, designers really need to begin thinking about physical screen size, rather than resolution in pixels. A 100px wide button on a 120dpi (low density) device is ~0.9” wide while on a 320dpi (extra-high density) screen it’s only ~0.3” wide. You need to avoid the fat-finger problem, where a crowded space of small touch targets coupled with an imprecise pointing tool (your finger) leads to accidental touches. The Android framework tries really hard to take your layout and scale elements up or down as necessary to work around device-density differences and get a usable result on a wide range of them. This includes the browser, which scales a 160px <img> at 100% browser zoom up to 240px on a 240dpi screen, such that its physical width is always 1”.

Developers can achieve finer-grained control over this browser scaling by providing custom stylesheets and images for different densities, using CSS3 media query filters such as -webkit-max-device-pixel-ratio and <meta> viewport arguments such as target-densitydpi=device-dpi. For an in-depth discussion on how to tame this mobile browser behavior see this blog post: Pixel-perfect Android web UIs.

For native Android apps, developers can use resource directory qualifiers to provide different images per density (such as drawable-hdpi and drawable-mdpi). In addition, Android offers a special dimension unit called ‘density independent pixels’ (dp) which can (and should!) be used in layout definitions to offset the density factors and create UI elements that have consistent physical sizes across screens with different densities.

Features you don’t have out of the box

There are a few features that web designers and developers rely on that aren’t currently available in the Android UI toolkit.

Developers can defer to user-driven browser zooming and two-dimensional panning for content that is too small or too large for its viewport, respectively. Android doesn’t currently provide an out-of-the-box mechanism for two-dimensional layout zooming and panning, but with some extra legwork using existing APIs, these interactions are possible. However, zooming and panning an entire UI is not a good experience on mobile, and is generally more appropriate for individual content views such as lists, photos, and maps.

Additionally, vector graphics (generally implemented with SVG) are gaining in popularity on the Web for a number of reasons: the need for resolution independence, accessibility and ‘indexability’ for text-heavy graphics, tooling for programmatic graphic generation, etc. Although you can’t currently drop an SVG into an Android app and have the framework render it for you, Android’s version of WebKit supports SVG as of Android 3.0. As an alternative, you can use the very robust Canvas drawing methods, similar to HTML5’s canvas APIs, to render vector graphics. There are also community projects such as svg-android that support rendering a subset of the SVG spec.

Conclusion

Web developers have a number of different tools for frontend layout and styling at their disposal, and there are analogues for almost all of these in the world of Android UI engineering. If you’re wondering about analogues to other web- or CSS-isms, start a conversation out there in the Android community; you’ll find you’re not alone.

New development channels and repositories for rapid releases

April 08, 2011 By: (author unknown) Category: 1

Shared by ianus
...no se llamaba Alfa?

Recently we announced additional details about the channels for the new Firefox development and release process. We are confident this process will enable us to ship quality Firefox releases to users at a faster cadence and ask for your patience as we hammer out the final remaining items.

Reasoning behind the new update channel and repositories

Firefox currently has three update channels, all of which contain updates built out of the same code repository:

  1. Nightly – builds created out of the mozilla-central repository every night. These are not qualified by QA
  2. Beta – builds created out of the mozilla-central repository, qualified by QA as being of sufficient quality to release to beta users
  3. Release – builds created out of the mozilla-central repository, qualified by QA as being of sufficient quality to release to hundreds of millions of people

Because the updates we put on the Nightly channel aren’t tested before they are offered to users, we use a different icon and name (“Minefield”) to indicate they are risky and not the stable Firefox most users expect:

While this approach has treated us well we feel there are some issues inherent in the current structure:

  1. The quality expectation for updates on the Beta channel is vastly higher than the updates on the Nightly channel
  2. Users on the Beta channel may not even know they are running pre-release (but hopefully decent) versions of Firefox
  3. Due to #1 above, development on the mozilla-central repository is frozen while we stabilize for an update to the Beta channel. This causes a huge backlog of patches and adds additional risk for the next beta
  4. 3rd parties must track Firefox development closely to know when a milestone they care about (such as feature complete, API freeze, or string freeze) is reached
  5. For developers, the tree rules are constantly changing on mozilla-central depending on when we last shipped an update from it

Because of these issues we came up with a modified process:

  1. Nightly – builds created out of the mozilla-central repository every night. These are not qualified by QA
  2. Aurora – builds created out of the mozilla-aurora repository, which is synced from mozilla-central every 6 weeks1. There is a small amount of QA at the start of the 6 week1 period before the updates are offered
  3. Beta – builds created out of the mozilla-beta repository, qualified by QA as being of sufficient quality to release to beta users
  4. Release – builds created out of the mozilla-release repository, qualified by QA as being of sufficient quality to release to hundreds of millions of people

With the new structure, all these issues go away:

  1. The quality expectation for updates on the Beta channel is vastly higher than the updates on the Nightly channel.
    We address this by creating the Aurora channel. This channel has higher expectations of quality than the Nightly channel but lower expectations than Beta. At the start of the 6 week1 Aurora period for a particular release, the quality will be closer to the Nightly channel. At the end of the 6 week Aurora period quality will have converged to match the Beta channel
  2. Users on the Beta channel may not even know they are running pre-release (but hopefully decent) versions of Firefox.
    To fix this issue we are branding builds from individual channels with new icons. This should allow users to know at a glance what channel they are on and set stability expectations accordingly
  3. Due to #1 above, development on the mozilla-central repository is frozen while we stabilize for an update to the Beta channel. This causes a huge backlog of patches and adds additional risk for the next beta.
    Because we are using a repo-per-channel model, mozilla-central development (and thus the updates on the Nightly channel) never have to freeze…quality convergence takes place on other repositories while Firefox development continues on mozilla-central unaffected by the release process
  4. 3rd parties must track Firefox development closely to know when a milestone they care about (such as feature complete, API freeze, or string freeze) is reached.
    With the new process what happens where and when is a lot more explicit and consistent. No longer will 3rd parties need to know that beta 8 was API complete while beta 9 was string frozen. Instead we can make assurances such as “no new en-US strings will be added through updates on the Aurora channel” and “no extension API changes will be delivered to users via the Beta channel”. This allows 3rd parties to accurately plan and encourages sticking to the rules and schedule
  5. For developers, the tree rules are constantly changing on mozilla-central depending on when we last shipped an update from it.
    Lastly, the new repositories (which map to the channels) allow developers to do what they do best—develop. No longer should a developer need to know we are in blocker-only mode for a particular release. Instead, they will be allowed to land their fixes on mozilla-central at any time provided they stick to the mozilla-central tree rules. The mozilla-aurora repository will have different rules, and mozilla-beta will have different (and stricter) rules still. The rules for each of these repositories will not change over time or from release to release, which should help alleviate a lot of developer confusion and annoyance

Repository and channel mechanics

The repository and channel mechanics can get very specific and involved. Most developers won’t care about the specifics and will instead just focus on landing their fixes on mozilla-central. If you do care about the specifics, please take a look at the previously posted process specifics document. The document is where we are collecting the decisions about how to best handle the nuts and bolts of releases.

Feedback

As with most Mozilla process changes, questions and comments from the community are highly encouraged. The best place to ask questions is the mozilla-dev-planning newsgroup. Please be sure to read the previous threads to make sure your question hasn’t already been answered as there have already been some great discussions taking place.

Feedback and changes to the process specifics document can be submitted directly as pull requests on GitHub. You can also use the history view to see the iterations the process document has already gone through.

Finally, I understand there are a lot of details in the specifics document and sometimes it is easier to just talk to someone directly. I am available via email and IRC (LegNeato on irc.mozilla.org) for any community members with questions or comments.


1 Please see the process specifics document for reasons why the steps for Firefox 5 are not in 6 week increments

Chromium to Feature in Pwn2Own Contest!

February 07, 2011 By: noreply@blogger.com (Ian Fette) Category: 1, google

We’re excited that the Google Chrome browser will feature in this year’s Pwn2Own contest. Chrome wasn’t originally going to be included as a target browser in the competition, but Google volunteered to sponsor Chrome’s participation by contributing monetary rewards for Chrome exploits. For the past year we’ve enjoyed working with the security community and rewarding researchers for high quality work through our Chromium Security Reward program. Sponsoring this contest to discover more bugs was a logical step. We thought we’d answer some frequently asked questions in the form of a Q&A session:

Q) Is Chrome OS a target?
A) No, not this year, as Chrome OS is still in beta. Per HP TippingPoint / ZDI guidelines, the actual target will be the latest stable version of the Chrome browser at the time, running on an up-to-date Windows 7 system. A Chrome OS device will, however, be awarded in addition to the prize money.

Q) Are you betting that Chrome can’t be hacked?
A) No. We think the Chrome browser has a strong security architecture, and Chrome has fared well in past years at Pwn2Own. But we know that web browsers from all vendors are very large pieces of software that invariably do have some bugs and complex external dependencies. That’s why the Chromium Security Reward program exists, along with our newer web application reward program. As a team comprised largely of security researchers, we think it’s important to reward the security community for their work which helps us learn. Naturally, we’ll learn the most from real examples of Chrome exploits.

Q) How do the rules work?
A) We worked with ZDI to come up with a rules structure that would reward exploits in code specific to Chromium and in third-party components such as the kernel or device drivers.

Of course, we prefer to pay rewards for bugs in our own code because we learn more and can make fixes directly. On day 1 of the competition, Google will sponsor $20,000 for a working exploit in Chrome, if it uses only Chrome bugs to compromise the browser and escape the sandbox. Days 2 and 3 will also allow for bugs in the kernel, device drivers, system libraries, etc., and the $20,000 prize will be sponsored at $10,000 by Google and $10,000 by ZDI to reflect the occurrence of the exploit partially outside of the Chrome code itself.

Note that ZDI is responsible for the rules and may change them at their own discretion.

Q) Does this competition impact the Chromium Security Reward program?
A) The program still pays up to $3,133.7 per bug. As always, submissions to the program don’t require exploits in order to be rewarded. In addition, we continue to reward classes of bugs (such as cross-origin leaks) that would otherwise not be eligible for prizes at Pwn2Own. We encourage researchers to continue submitting their bugs through the Chromium Security Reward program.

Posted by Chris Evans, Google Chrome Security Team

Oracle kicks LibreOffice supporters out of OpenOffice – Computerworld Blogs

January 27, 2011 By: (author unknown) Category: 1

Shared by ianus
una noticia de hace unos meses que se me escapó! :P

Well, that didn't take long. When The Document Foundation (TDF) created LibreOffice from OpenOffice's code, they let the door open for Oracle, OpenOffice's main stake-owner, to join them. Oracle's reply was to tell anyone involved with LibreOffice to get the heck out of OpenOffice.

This isn't too much of a surprise. Oracle made it clear that wouldn't be joining with The Document Foundation in working on LibreOffice.

What I did find surprising is that Oracle turned a fork into a fight. In a regularly scheduled OpenOffice.org community council meeting on Oct. 14, council chair and Oracle employee Louis Suárez-Potts wrote, "I would like to propose that the TDF members of the CC consider the points those of us who have not joined TDF have made about conflict of interest and confusion ... I would further ask them to resign their offices, so as to remove the apparent conflict of interest their current representational roles produce."

No further Android updates for Xperia X10 series

January 07, 2011 By: (author unknown) Category: 1, google

Shared by ianus
Más razones para no comprarse un LG con Android!
...en mi caso si no fuera por http://openetna.com/openetna/ (versión "libre" de Android para LG) estaría todavía con 1.5 en mi GW620.

Gracias "openetna"!

P.S.: No volveré a comprar un móvil LG.

Desde ahora HTC ...y poco más!
We hope you weren't holding your breath for further updates to your X10, X10 mini or X10 mini pro, because Sony Ericsson has just confessed to Android Community that there will be no further updates to these devices beyond Android 2.1.

To be honest, we aren't really shocked but if you own one of these devices, especially the X10, and were hoping to get some of that Froyo or Gingerbread action, then we wouldn't judge you if you cry yourself to sleep tonight. But we do judge Sony Ericsson for the silly reason they gave people for not upgrading to higher versions of Android. According to them, their customized version of Eclair on the X10 range is better than the vanilla installation of Froyo that Google provides. Sure, Sony Ericsson, whatever.


 





Having said that, Sony Ericsson hasn't completely dropped the software updates for these devices. Any future updates from Sony Ericsson will be for things such as multitouch update for the display, etc. but nothing for the core operating system. Then again, you can always install the unofficial custom ROMS, if you haven't already.

Welcome to The Document Foundation! – The Document Foundation

November 02, 2010 By: (author unknown) Category: Uncategorized

Shared by ianus
Our Mission

Our mission is to facilitate the evolution of the OpenOffice.org Community into a new open, independent, and meritocratic organizational structure within the next few months. An independent Foundation is a better match to the values of our contributors, users, and supporters, and will enable a more effective, efficient, transparent, and inclusive Community. We will protect past investments by building on the solid achievements of our first decade, encourage wide participation in the Community, and co-ordinate activity across the Community.
Our Team

Here is a (still incomplete) list of those deeply involved in the creation of the Document Foundation, and its steering committee.
The Document Foundation is an independent self-governing democratic Foundation created by leading members of the OpenOffice.org Community.

EA Buys Game Publisher Chillingo – ITProPortal.com

October 21, 2010 By: (author unknown) Category: Uncategorized

Shared by ianus
...bueno o malo?
o simplemente ...po vale!

Electronic Arts has announced the acquisition of Chillingo, the publisher behind the popular iPhone and Android game Angry Birds.

According to Reuters, which first reported the acquisition, EA has purchased the publisher for $20 million.

However, the deal does not include Angry Birds creator Rovio, which still retains the rights to the popular iPad, iPhone and Android game.

Chillingo is also known for publishing the mobile games Cut the Rope, Helsing's Fire and Predators.

EA said in a statement: “Chillingo is widely recognised for publishing highly original and successful games from the developer community. EA is committed to preserving Chillingo's independence enabling them to manage and cultivate their great network of relationships to deliver the optimal gaming experience for consumers.”

Waze 2.0, el navegador GPS más social se renueva

October 05, 2010 By: Adrian Latorre Category: interesante

waze

Ya hemos hablado en más de una ocasión de Waze, un navegador GPS que nos encanta. Hoy mismo ha actualizado su aplicación a la versión 2.0 y por ello desde EAL estamos encantados en volver a analizarla.

trafico wazeLa aplicación

Para los que lo desconozcáis, Waze es “una aplicación gratuita para teléfonos móviles que permite a sus usuarios construir y utilizar mapas en vivo, actualizaciones sobre el estado del tráfico en tiempo real y navegación GPS para mejorar sus viajes diarios” como se definen ellos. Pero lo más importante de todo es su factor social. Cada usuario tiene la posibilidad de informar sobre cualquier incidencia que resulte importante o interesante. Por ejemplo, la ubicación de un radar, una redada policial, un accidente de tráfico o un típico embotellamiento. De esta manera los demás usuarios de Waze quedan alertados de las incidencias y pueden variar la ruta.

Como hemos dicho, Waze es ante todo un navegador GPS, así que podrás pedir direcciones para ir a un determinado lugar y Waze te guiará  al más puro estilo GPS para que llegues a tu destino. Por descontado, utilizará la información actual para que sea más corto el viaje (si hay un accidente, buscará una ruta alternativa). Esto hace de Waze un GPS inteligente y lo más importante que va mejorando con el aumento de su uso.

waze conducir2

Los usuarios y grupos

“Consideramos a la comunidad Android como una parte central de nuestra base de usuarios, y estamos muy contentos de poder traerles todo lo que la nueva versión ofrece”, dice Noam Bardin, CEO de Waze. “Estamos impresionados con su nivel de participación y en base a eso tenemos la expectativa de que su participación en los grupos será significativa”.

Y es que si una cosa esta clara es la implicación de la comunidad Android. Como comprenderéis, si una única persona en toda Barcelona informa sobre incidencias, este navegador pierde toda su gracia. Por ello se ha dotado de un aspecto de rol al navegador. Podrás informar de incidencias, atascos o accidentes y de esta manera, por un lado ayudar a otros usuarios y por el otro ganar puntos y niveles. Así todo el proceso de participar se hace más ameno y la experiencia de la aplicación mejora mucho.

waze-grupoUna de las principales novedades de esta versión es la implementación de grupos. El principio es sencillo, creas un grupo de gente que tenga un denominador común. Podrás entonces ver los avisos de éstos, sus localizaciones y sus comentarios. Por ejemplo, si vas de acampada con los amigos y vais en varios coches, se puede crear un grupo para ir sabiendo de los demás. O bien te puedes unir al ya existente Gente que va a trabajar por la C-32 y de esta manera, estarás al día de todos los avisos de la C-32. Por descontado hemos creado el grupo “Androides conductores de Barcelona” al que estáis todos invitados.

Y básicamente es esto, la aplicación va bastante bien, bonita interfaz, aunque a veces hay algunos errores de control (el teclado no desaparece de pantalla y a veces los diseños se mueven de forma extraña, pero en general Waze hará de conducir una experiencia entretenida y de lo más social. Recordamos otra vez que Waze es un navegador GPS completamente social cuyo éxito depende únicamente de la comunidad, así que ya sabéis, cuantos más seamos, mejor ;)

 

 

alertas wazewaze conducirwaze grupo3waze irwaze preferenciaswaze usuarios

Android-x86 – Porting Android to x86

August 16, 2010 By: (author unknown) Category: Uncategorized

Shared by ianus
Alguien lo ha probado?
This is a project to port Android open source project to x86 platform, formerly known as "patch hosting for android x86 support". The original plan is to host different patches for android x86 support from open source community. A few months after we created the project, we found out that we could do much more than just hosting patches. So we decide to fork our code base that will provide android x86 support on different x86 platforms, and set up a git server to host it. To reflect this major change, we create this new project.

Multi-touch Support Lands in Maverick

August 16, 2010 By: Duncan McGreggor Category: 1, linux

Canonical is pleased to announce the release of uTouch 1.0, Ubuntu’s multi-touch and gesture stack. With Ubuntu 10.10 (the Maverick Meerkat), users and developers will have an end-to-end touch-screen framework — from the kernel all the way through to applications. Our multi-touch team has worked closely with the Linux kernel and X.org communities to improve drivers, add support for missing features, and participate in the touch advances being made in open source world. To complete the stack, we’ve created an open source gesture recognition engine and defined a gesture API that provides a means for applications to obtain and use gesture events from the uTouch gesture engine.

Our multi-touch work began in Ubuntu 10.04 LTS, when we worked to get additional touch hardware supported in the Linux kernel, particularly the Dell XT2, HP tx2 tablets and the Lenovo T410s laptops. With that in place, and active development in X well under way, we reviewed our options for gesture recognition in Linux. The Maverick cycle has seen us produce several prototypes for gesture recognition software and the Ubuntu archives now include the results of that effort.

The world’s expectations of software experience are being raised by advances in mobile computing. We are bringing that revolution to the Linux desktop: for window management and applications. Though our work at the application level has only just started, we are certain that multi-touch and gestures will be central to the way we use Linux applications in future.

The success of touch in applications depends on several key factors:

  • toolkit integration of gesture APIs
  • touch support for legacy applications
  • designing new applications for finger-based interactions

Work has begun on all three fronts in Ubuntu, and we expect it to remain an area of active interest over the next few releases up to 12.04 LTS.

Ubuntu is the fruit of collaboration across the huge Ubuntu community, and also the amazing work of many other communities that form around individual projects and initiatives like Debian. The uTouch framework enables work to begin across many of those communities to make touch a first-class interaction model in open source desktop and mobile software.

Existing contributions in other projects have provided fertile ground for uTouch. To name just a few:

  • Stéphane Chatty at ENAC has lead much multi-touch hardware support in the kernel
  • Peter Hutterer at Red Hat defined multi-pointer X and proposed a multi-touch protocol for a future version of X
  • Carlos Garnacho of the GNOME community has done multi-touch work in X and GTK

We’re look forward to continued collaboration, ensuring that Linux remains the preferred platform for people building cutting-edge devices and software.

Canonical is working with manufacturers of touch-enabled products and those of their underlying technology in order to bring innovations in user experience to a broader audience. Our aim is to bring the natural, tactile experience of the world to the desktop, window manager, and applications you value — all the software that you depend upon to get things done and have fun. Touch will be part of the Ubuntu Netbook, Desktop and Light products from 10.10 and beyond.