[Android] La répartition des versions d’Android

En tant que développeur, ou même simple amateur, il est toujours très intéressant de savoir le public que l’on vise. En ce qui concerne Android, Google offre des données permettant de savoir la répartition des différentes versions d’Android via ce lien : http://developer.android.com/about/dashboards/index.html . Cela permet, entre autre, de déterminer la version d’entrée de votre application (Android 2.2 était la référence il y a peu encore, la version 2.3 en est maintenant un meilleur atout). Bien entendu, certaines applications se devront de demander au moins Android 4.0 du aux nouvelles fonctionnalités disponibles sur cette version.

Un petit coup de pouce à nos amis du petit robot vert 😉 …

Tagged with: , , , ,
Publié dans Mobile

[iOS] De iOS 1 à iOS 7 en un GIF

iOSevolution

 

 

Une petite image qui résume bien des discours, mais qui montre de manière très intéressante l’évolution de l’un des OS mobile les plus présent du marché. Qu’en pensez-vous ?

Tagged with: , , ,
Publié dans Mobile

[WP8] Application appareil photo alternative, TakeAPicture

8df55da9-1680-4aeb-a458-1a30e06e8841

Voici une petite application développée par mes soins il y a quelques mois pour la prise de photo sur Windows Phone 8. Loin d’être poussée elle offre au contraire une simplicité et une honnenèteté complète. Vous pourrez prendre une photo avec le bouton physique de votre smartphone ou sur l’écran, activé ou non le flash et choisir la résolution de la photo. L’application vous informormera en temps réel de ce qui se passe. Allez essayer sur TakeAPicture.

Tagged with: , ,
Publié dans Mobile

Root du Galaxy S3

Le root, quézako ?

Une question qui m’a souvent été posée. Je vais vous donner une tentative de réponse. Le root vous donne en quelque sorte tout les pouvoirs sur votre smartphone. Cela peu donner accès à de simple chose comme le controle du GPS par une autre application que Android à des modifications du matériel de votre smartphone. Il s’agit donc d’un système pratique mais à utiliser avec précautions.

Et c’est dangeureux ?

Sans mentir, oui ça peut l’être pour votre smartphone. Mais sachez que le risque est presque le même que de mettre à jour un smartphone. Sachez toute fois que je ne suis ici que pour vous montrer comment faire et ne peut être tenu responsable de ce que vous faites.

Et ma garantie ?

Dans la majorité des cas, les réparateurs ne détecteront pas le root et donc votre garantie sera préservée. Par contre, pour des problèmes de fonctionnalités, la le risque de détection est largement supérieur.

 

Rooter son Galaxy S3 (I9300)

 

Vous aurez besoin pour cela :

  • Avoir installé les drivers USB de votre galaxy s3 i9300, si ce n’est pas le cas, installez Samsung Kies
  • Téléchargez et dézippez le fichier « Odin3-v1.85.zip » l’outil pour installer le cfroot.
  • Téléchargez et dézippez le fichier du Cf-root pour votre Galaxy S3 « CF-Root-SGS3-v6.4.zip ».

Vous avez maintenant toutes les armes en mains. Voici ce qu’il vous reste à faire :

  1. Lancez l’application « Odin3 v1.85.exe » puis placez le fichier « CF-Root-SGS3-v6.4.tar » dans l’onglet « PDA ».
  2. Éteignez complètement votre mobile.
  3. Maintenez les boutons « volume bas + home + power » enfoncé pour arriver au mode download.
  4. Connectez votre mobile à votre PC via le câble USB puis vérifiez si la case ODIN est devenue jaune avec un message « 0:[COMX] » ce qui signifie que votre Galaxy s3 est bien reconnu par ODIN.
  5. Les cases « Auto Reboot » et « F. Reset Time » doivent être cochées.
  6. Ne pas cocher la case « Re-partition ».
  7. Cliquez sur « Start » pour commencer l’installation du CF-Root.
  8. Une fois l’installation est terminée, votre mobile va redémarrer tout seul.

Voilà, vous avez maintenant  votre Samsung Galaxy s3 i9300 rooté sans changement apparent. Vous disposerez de l’application Super SU pour gérer les droits pour les applications et CWM qui est un recovery custom, je vous dévoilerais ses capacités plus tard.

Tagged with: , , , ,
Publié dans Mobile

[.NET] Base de donnée embarquée Windows Phone et Windows 8

Possibilités

·        SQL CE (via Linq To SQL)

·        SQL Lite

·        Lex.DB

     Avantages de chaque

2.1.   SQL CE

 

Il s’agit sans doute de la base de donnée intégrée la plus rapide des trois et la plus légère. Elle est livrée avec un puissant outil, Linq To Sql.

2.2.   SQL Lite

 

Elle est disponible pour tous types d’appareil, et même ouverte à Android et iOS. Ce qui lui donne une portabilité unique.

2.3.   Lex.DB

 

Elle dispose de la même librairie pour tous les types d’appareil (Windows RT, Windows 8 et Windows Phone 8). Elle a pour autre avantage d’être très très rapide et ce dût au fait qu’il ne s’agit pas réellement d’une DB mais d’une utilisation particulière du système de fichier réservé pour une application dans Windows 8 et Windows Phone 8.

 

 Désavantage de chaque

3.1.   SQL CE

Son seul et plus gros désavantage est qu’il n’est tout simplement pas supporté par les applications Windows Store, ce qui le rend inutilisable pour notre application Windows 8.

3.2.   SQL Lite

Il y a deux gros désavantages à ce système : sa lenteur relative aux autres et l’absence de wrapper officiel pour Windows Phone 8 et Windows 8.

3.3.   Lex.DB

Son plus gros désavantage repose dans sa nature, il ne gère pas du tout le côté relationnelle d’une vraie base de données. De plus, comme il s’agit d’un logiciel libre, sa maintenance n’est pas assurée.

Choix finale

Dans un soucis de compatibilités entre plateforme et afin de pouvoir développer une partie Data Access la plus commune possible aux applications Windows 8 et Windows Phone 8, le choix se porte sur SQL Lite.

En effet, pour la version Windows 8, SQL CE n’est pas disponible et Lex.DB représente trop de travail et pas assez de sécurité pour notre future application. Le choix du SQL Lite pour cette plateforme s’imposant, nous l’utiliserons pour l’entièreté des applications créées lors de ce projet.

Problématique du Wrapper

Microsoft n’ayant pas encore terminé son wrapper officiel et ne voulant pas travailler directement avec le db engine, il a fallu trouver un wrapper non-officiel. Après de nombreuses recherches, le plus complet et efficace se trouve être sqlite-net qui est disponible pour Windows 8 et Windows Phone 8.

Tagged with: , , , , , , , ,
Publié dans .NET

[.NET] Choix de méthode pour parser du XML

 Objectifs

 

Afin d’optimiser au mieux le code, pour qu’il puisse tourner en background sous Windows Phone et Windows 8, nous devons choisir une méthode pour parser du XML qui soit la moins consommatrice possible en mémoire et s’exécute le plus rapidement possible.

Si possible, nous tenterons également de garder une approche la plus facile possible de la décomposition d’un fichier XML.

Possibilités et choix

 

Utilisé « XmlDocument » est sans doute la façon la plus simple de parser du XML. Malheureusement, celui-ci fonctionne en chargeant en mémoire l’entièreté du document XML ce qui est problématique vu que nous souhaitons travailler en utilisant le minimum de mémoire.

Il nous reste deux possibilités XmlReader ou Linq To SQL (qui peut utiliser XmlReader). Le premier fonctionne de manière séquentielle pour la lecture des données mais ne consomme que le minimum de mémoire possible. Le second par contre de base charge aussi entièrement le document en mémoire vive, mais ce comportement peut être évité et limité ainsi la mémoire consommée. Il nous reste alors la rapidité de lecture du document qui, comme le tableau ci-dessous nous le montre, met en avant le XmlReader. L’UTF8 est l’encodage utilisé pour la transmission des documents XML dans notre projet.

Nous utiliserons donc cette technologie pour notre projet.

The Results

The following results are in milliseconds for each run. I took the total time to run and divided it by 100.

UTF8Encoding

1

10

100

1,000

10,000

100,000

XmlDocument

0.1567800

0.1713450

0.3888620

1.9816480

22.8049260

459.8570340

XmlReader

0.1467460

0.1439580

0.2300500

0.8534400

7.5771640

76.8635690

LINQ to XML

0.1499530

0.1500640

0.2778720

1.4616730

15.7719020

208.9360300

Tagged with: , , ,
Publié dans .NET

[.NET] If or switch : performance

Toujours dans un souci de performance et d’optimisation, il a fallu choisir entre utiliser des blocs « if » ou « switch… case… » dans la bibliothèque de synchronisation.

En faisant un test avec une probabilité égale entre chaque branchement, nous pouvons voir que de base le « switch » grâce à une jump table d’opcode est plus rapide qu’un « if » basé sur des branchements conditionnels.

Mais, si la probabilité penche vers un des branchements, et que ce branchement est le premier dans la série de « if », celui-ci devient alors plus rapide.

Pour ce qui est de la synchronisation, ou le choix doit se faire entre la synchronisation de la synchronisation (qui n’arrive qu’une fois de temps en temps) et une synchronisation de l’application (courante en journée), la présence d’une forte probabilité nous fait pencher vers le « if » pour ce branchement.

Tagged with: , , , ,
Publié dans .NET