Как стать автором
Обновить

Комментарии 16

Что здесь происходит, Java, JavaScript, Android?! Phonegap?!
Java под Android + JavaScript.

PhoneGap упомянут просто для охарактеризования области задач приложения. В коде он нигде не используется. Я посчитал, что на Хабре в статье про Android достаточно написать лишь название этой библиотеки.
В последнем примере можно jsCode объявить final:

public void callJS(final String jsCode)
{
    runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.loadUrl( "javascript:"+jsCode);
        }
    });
}
По поводу поворота экрана: решение весьма занятное, но, мне кажется, гораздо проще и правильнее было бы использовать Fragments и метод setRetainInstance.
Посмотрю, спасибо.
А Fragments мне не подошли — они с sdk11, мне же нужно поддерживать sdk8+.
Посмотрите: developer.android.com/tools/support-library/index.html
Фактически, это уже стандарт в Android-разработке, без которого не обходится ни один проект.
Да, позавчера еще хотел его прикрутить для другой функции. Пока не вышло с AndroidStudio. Разбираюсь)
Точка зрения Гугла о вашем и подобных «прлиожениях»
image
Пока это приложение, у которого все html, js, css, картинки уже внутри apk. По сети гоняются лишь ajax запросы к серверу. Да, это не нативное приложение, но и не «приложение, живущее в web». Открыть программу и поработать с ней (хоть как-то) можно и без подключения к интернету.
А для обкатки дизайна и функциональности — отличное решение. А время покажет, может и будет переписано.
Да, кстати, а если залить внутрь «сайт полностью». Я имею ввиду, что даже запросов на сервер быть не должно. Если специфика сайта такова, что ему не важно, офлайн или онлайн он работает. Как гугл относиться к этому?
Приложение довольно активно (в среднем, больше десятка запросов в минуту) общается с внешними серверами.
Так что сейчас часть интерфейса нативная, а часть внутри WebView, из которой взаимодействие и происходит.
И насчет кода — в целом, все неплохо, но еще лучше было бы, если бы вы ставили пробелы в нужных местах, не превращая код в кашу, использовали бы final, и префиксы m и s для class members и static class members соответственно.
А еще ни к чему создавать лишние биндинги, когда вы используете переменную ровно один раз.
И еще «catch (Exception e)» — не очень хорошо. Лучше делать отдельные ветки catch для разного рода exception'ов, а не проверять их при помощи instanceof.
1. Можно примеры, где не хватает пробелов и получается каша?
2. Насчет префиксов s и m. Не встречал еще java кода с таким подходом. Это есть в стандарте?
3. А общий Exception это понятное дело не очень хорошо. Но городить огород на 5 или 6 (столько было в промежуточной версии) одинаковых по реализации блоков catch очень не хотелось. Сделал этакую имитацию python стиля.
Кстати, Android Studio спокойно отнеслать к такому подходу)
1. Например, «for (int i=0; i<len; ++i)», хотя должно бы быть «for (int i = 0; i < len; ++i)». Это мелочи, но все же.
2. Вот, почитайте: source.android.com/source/code-style.html#follow-field-naming-conventions
3. Почитайте: stackoverflow.com/questions/21938/is-it-really-that-bad-to-catch-a-general-exception (там, в частности, есть о том, когда такой подход приемлим, а когда нет)
Зарегистрируйтесь на Хабре , чтобы оставить комментарий

Публикации