Archive for the ‘Android’ Category

На twitter майката

July 26th, 2013   

twitДо скоро ми беше много чудно как хора със Android смартфони се оплакват, че батерията не им издържа и ден. Аз подобни проблеми не бях имал и то при положение, че съм със стар-стар Galaxy S, на повече от 2 години. И преди ми се е случвало, от време на време, да започне да ми пада батерията доста по-бързо от нормалното, но не бях обръщал особено внимание, защото проблема си се оправяше от само себе си по някое време (когато деинсталирам даден апп). Наскоро обаче си качих twitter апп-а и изведнъж и при мен juice-a започна да свърша за около ден. Прави се оказаха google developer-ите, че ако не внимавате как си пишете апп-овете ще източите батериите на юзерите и те ще са недоволни. Twitter апп-а е типичен пример за лошо написано приложение -- дори и да няма интернет връзка, той периодично си wake-ва CPU-to и си прави нещо и източва батерията…

Та да ви посъветвам:

Трябва да изберете кое е по важно за вас. Дали:

  • да имате по-дълго време батерия
  • да имате twitter, facebook, skype и всичките останали social "лигавщини"

Аз лично реших да махна този лошо написан апп…

 

 

 

 

Nexus 7 дойде най-накрая и в България

October 6th, 2012   

Ако сте се изкушавали да си купите таблет, но не сте били сигурни кой да изберете вече имате решение. От няколко дни Nexus 7 може да се купи и в БГ (на нормална цена (499 лева)). Като човек, който се занимава с програмиране за Андроид от две години, а също и защото не малко таблети минаха през ръцете (макар и за кратко) ви съветвам да изберете него, защото:

  • най-удобен е за четене -- съчетанието от лекота (само 350 грама), хубав екран 7″ и издържливостта на батерията го правят идеален за четене на книги и непретенциозно броузване;
  • най-добро съотношение цена/качество и цена/производителност. По бърз таблет не съм виждал на живо. Изключително пъргав и responsive;
  • тъй като е от Google (поне маркетингово) получава винаги първи най-новите версии на Андроид;
  • пълен набор от "екстри" GPS, компас, жироскоп, NFC и т.н. Май не се сещам за таблет под 1000 лева , който да предлага същите неща (в интерес на истината няма 3G, но това за 80-90% от потребителите не е никак важно).

Най-добрата цена, която успях да открия е в tablet.bg. Съветвам ви да си го купите в комплект с калъф, защото иначе ще трябва доста да го пазите (това не специфично само за този таблет, а за всички. Без калъф просто постоянно трябва да внимавате къде ги оставяте , дали няма да се хлъзне или издраска и т.н.). По принцип е добре да изберете калъф, който може да служи и за стойка, но поне за момента не намирам такива в БГ.

Не че искам да ви убивам ентусиазма, но държа да ви предупредя: поне според мен всичките тия таблети (не само андроидските, но и iPad) са малко безсмислена история. Моят го използвам почти единствено покрай програмирането ми за Андроид и нерядко се случва със седмици да си стои бюрото ми включен към компютъра, без да го ползвам за нещо друго. Отделно от работата единственото смислено приложение, което съм открил е, че е перфектен за четене на книги, но напоследък нямам време за това.

 

Вече съм истински Андрид програмист

September 28th, 2012   

Хванете което и да е дете от улицата и го питайте: "Какво е истински герой?" и то ще ви отговори:

"Емиии, таковата, истинският герой трябва да е силен, балансиран и да има яки item-и"

:-)…

… та и аз така. След като го докарах на сила и баланс ми липсваха само нужните item-и, за да минавам за Истински Андроид програмист™, но ето, че вече и тази работа свърших и си имам андроид mini collectibles. Това в ляво се води Standard green, а това в дясно -- Greeneon. Реално погледнато само Standard green можете да си го изберете, за другите просто поръчвате така наречения "blind pick" и каквото ви се падне -- такова. Първоначално малко се разочаровах като видях, че ми се е паднало Greeneon, защото има къде-къде по-готини, но после видях, че на него, за разлика от на другите, му се маха главата:

… т.е можете да си дрържите разни неща в него. Very neat. Ама какво да си държим там?! НЕкои хора проявяват липса на въображение и си слагат в него желирани бонбонки (Jelly Bean), но като се има предвид фройдистката форма на малките копеленца мисля, че (more…)

Lines Of Code (aka Лайна От Код) :-)

May 19th, 2012   

Заради предстоящата презентация пред инвеститори днес седнах да генерирам малко статистика за мегаломанския проект, по който работя последните 12+ месеца. При все уговорката, че нещата са писани с доста бързане, все пак, кода е в изтествано и добро състояние (поне за PHP частта гарантирам, че е по-добра от 90% от проектите, които съм виждал (както open source, така и proprietary)). Java (android) приложенията, не са толкова добре направени -- имам само година и половина опит в тази област (сравнено с PHP: 8+ год), а и доста бързах(м) с нещата и тук-там минавам напряко… Интересното е, че и за двата програмни езика производителността ми като LOC на ден е почти една и съща: ~250 непразни, некоментирани реда.

За HTML, CSS и javascript умишлено не се опитвах да правя статистика, защото там термина LOC е много (по-)непоказателен.

Фрапиращото в случая е, че когато съм си мерил производителността при работа в средно голям екип (5-6 човека), никога не съм преминавал границата от (more…)

Някои изненади от потребителите на Андроид в България

April 22nd, 2012   

Преди време се бях замислил, дали не е добра идея да направя Андроид маркет само за БГ. Аргументацията ми беше следната:

  • няма достатъчно приложения на български;
  • наличните приложения от български разработчици са с доста ниско качество, като това до голяма степен е следствие, че от тях пари не могат да се изкарат и съответно не се отделя необходимото време, за да бъдат изпипани;
  • цените в Google Play не са съобразени с покупателната способност в БГ.

Пуснах допитването в един андроид форум, като въпросът беше формулиран: "Смятате ли, че има нужда от български андроид маркет с цени ниски като за България?"

Както се вижда, резултатите бяха в полза да се направи такъв маркет -- приблизително 70%. Тъй като повечето хора не бяха прочели, че трябва да напишат и каква цена са склонни да плащат пуснах втора анкета, която да изясни този въпрос и тук вече резутатите силно ме изненадаха.

Въпросът на втората анкета беше дефиниран така: "Каква според вас е подходящата за България цена на един App, който в Google play струва ~1,50 лв."

Очаквах, че повечето хора ще (more…)

Solution for android problem with sending manual GPS location to the emulator via DDMS view

September 4th, 2010   

Many Eclipse users report that they cannot send GPS location via DDMS view (using Manual, GPX or KML). After about one hour of struggling with the DDMS and searching with Google I found that the problem is caused by the locale used by Eclipse, i.e. if you are in some european country your locale (and lang) will not be set by default to en_US (for example). This obviously confuses eclipse/ddms and it cannot send location data correctly (probably because of wrong decimal separator interpretation).

Solution: open your eclipse.ini (found in your eclipse install dir) and add the following line:

-Duser.language=en

and restart Eclipse. This will allow you to send GPS locations to the emulator.

More about this bug you can find at android's bug tracker, Issue 915.

Publishing APKs on your own web server (apache)

August 26th, 2010   

Yesterday I had some trouble publishing APKs my own site and I will share that experience.

I copied an APK to my server, tried to download it via phone's browser but I repeatedly got this error:

Download unsuccessful

After some investigation I found the solution:

First of all -- ensure that you can download and install APK from other sources (more…)

Android logging explained (differences between classic java logger and android logging)

August 9th, 2010   

If you are used to "classic" Java logger you may be unpleasantly surprised when you try to use Android's logging mechanism.

In classic Java usually you do things like:

Logger myLogger = Logger.getLogger("com.somedomain.someapp");
logger.setLevel(Level.FINE);

… and then you log with:

logger.warning("some warning");
or
logger.fine("some message");
etc.
At first glance things are the same in Android, i.e. you have android.util.Log, you have methods like Log.i("some message"); but there are two important differences:
1. You can't set log level at runtime. You must use:
adb shell setprop log.tag.<YOUR_LOG_TAG> <LEVEL>
Don't try to use System.setProperty("log.tag. …", …) -- it is useless.
2. As stated in Log docs, "Before you make any calls to a logging method you should check to see if your tag should be logged", this means -- android will not filter logs for you (level wise). You have to use something like:
if (Log.isLoggable(tag, Log.INFO)) {
 
Log.i(tag, msg);
 
}
i.e. you should take care for log level filtering. Luckily it is not difficult to create wrapper class around Log in which you overwrite all logging methods using checks like in the above code.