jkeks блог


Минимальное приложение на Android



14.7.2013 700 просмотров ;)


Меня так бесит мобильная разработка что я решил поглумиться над текущей ситуацией.

Минимальное мобильное приложение для Андроида на нативной Далвике (читай Java) которое нужно сделать чтобы получить унылый HelloWorld.

Простой пример с StackOverFlow

Структура папок:

.
??? AndroidManifest.xml
??? res
??? src
    ??? com
        ??? example
            ??? minimal
                ??? Minimal.java

т.е. для работы нужно создать 2 файла как минимум это Манифест и сам код приложения на Java

остальное это структура так сказать от Google на всякий случай.

Я не знаю зачем столько папок, то ясно одно, Такие структуры не прощают жизнь, а усложняют, сособенно для наколеночных разработчиков навроде меня. Я хочу все получить в однустроку и при полете одной мысли. тут так не выйдет.

 

Посмотрим на

Minimal.java

package com.example.minimal;

import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;

public class Minimal extends Activity {

    /* (non-Javadoc)
     * @see android.app.Activity#onCreate(android.os.Bundle)
     */
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        final TextView tv = new TextView(this);
        tv.setText("Hello World!");
        setContentView(tv);
    }

}

После DevelStudio и PHP я не могу ровно относиться к таким вещам. Ведь это же всего лишь покажет одну строку текста.

Ну ладно import, любой язык сейчас грешит такими лишними буквами (хотя PHP лишен такого недостатка)

Но вот этот public class minimal extend Activity — это какое-то растягивающее мозг действия для меня загадка. Видимо это огрызок от Си, который готовит что это главная функция. Но зачем столько разных букв — загадка. Я как школолошник и наколеночник — никогда в жизни не пойму зачем оно нужно. Это приводит к тому что приходится копипастить, а не думать. да что говорить. Сами IDE помогают вставлять целые копипастные куски кода.

 

@Override

Зачем ?

Я не знаю Java, но мне кажется что в любом языке должна быть какая-то легическая мысль. Но что это за слово ?  Зачем ? Догадокв голове нет.

После CoffeeScript я так расслабился что теперь даже перестал любить PHPшные скобки.

protected void onCreate(Bundle savedInstanceState) {

Ужас. Что такое протектед и воид — все выкинул бы.

Чтобы вывести текст, нужно создать объект, что делают в 2 строки, остальные строки для меня так же остаются загадочными.

Я понимаю что я могу взять толмут по Java и документацию по Андроиду и все быстренько изучить =). Однако сдается мне что придется копипастить. Настоящих программистов для Андроида — единицы, потому что понять столько умного кода -осилит далеко не все.

 

У нас еще есть Манифест. Нормальный человек подумает: Код есть, а что еще надо ? Правильно, описание форм, другими словами CSS для приложения.

Но глянув в Манифест я обнаружил там какое-то убогое скопище не несущих смысла XMLных букв.

AndroidManifest.xml

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.minimal"
    android:versionCode="1"
    android:versionName="1.0">

    <uses-sdk android:minSdkVersion="15" android:targetSdkVersion="15" />

    <application android:label="Minimal">
        <activity android:name="Minimal">
            <intent-filter>
                <action android:name="android.intent.action.MAIN"/>
            </intent-filter>
        </activity>

    </application>

</manifest>

Все правильно, у нас же нету ничего в программе, значит нет и несущих смысл букв. Остальное — нужно выкинуть, я хотел бы выкинуть… ну очень хочется выкинуть.

 

От этого всего меня воротит и пропадает желание писать под Андроиды, а надо. Баловаться-то охота.

Можно было бы писать нечто на HTML5+Angular например и плевать на Dalvik, однако не хочется терять нативных возможностей (доступа к камере, микрофону, гироскопам и т.п. поэтому писать веб приложения кажется не вариант)

Вот так грустно пока что.







Видеочат рулетка

jAntivirus Рейтинг@Mail.ru