Pull to refresh
6
0
Send message
Это симулятор гадания на картах. Там множество картинок загружается, и ни на качестве их, ни на размере я не экономил.
О, тут вообще исчерпывающе про этот вопрос! Нет, где-то на Эмбаркадеровском форуме для разработчиков просто обсуждалось про загрузку картинки в новом потоке, пока приложение стартует — я про это писал. Теперь же материала для размышлений стало гораздо больше. Спасибо.
По поводу try..finally. Это был псевдокод, показывающий, что на обеих платформах можно спокойно использовать Free для освобождения объекта.

Если по сути дискуссии — использование того или иного подхода зависит от того, велика ли вероятность ошибки в конструкторе. Ошибка, например, при создании стринглиста, крайне маловероятна (кончилась память? Ничего другого сразу и не придумаешь.).

Предполагать, что ошибка может возникнуть в любом операторе программы, конечно, можно, но отражать это в коде имеет смысл только для самых наиболее вероятных мест.
Гуй был простой, чтобы любая девочка разобралась. Главный напряг ресурсов процессора приходится у меня на моменты, когда анимация контрола происходит одновременно с проигрыванием звукового файла. На Виндах явно заметно дёрганье анимации, т.е. что-то перегружено. Как ни странно, на Андроиде такого нет. Вот это поразительно. К слову, одни и те же 3D сцены, сделанные на Юнити, имея на десктопе фпс порядка 150-200, на этом же планшете падают в фпс до 15-20, т.е. на порядок.
Если запускать напрямую с устройства готовую Release сборку, всё работает очень быстро. Я вообще никаких задержек не заметил. Единственно, запуск занимает 3-4 сек, и при этом чёрный экран. Кажется, что долго. Для сравнения запустил Маркет. Те же 4 сек. Только он сразу показывает верхнюю панель и выставляет крутящийся курсор ожидания, потому кажется, что запустился мигом. Вообще надо было бы какой-нибудь сплеш сделать, да времени не хватило.

Резюмируя — задержек при работе нет, и надо обязательно делать сплеш, чтобы не светить чёрный экран при запуске. Как сделать — вроде на каком-то форуме про это видел, надо опять поискать.
Уверен, что реально работает практически на всём. Поясню почему.
Использовались, судя по всему, не тесты, а кривые «антитесты». Почитал про свой аппарат:

Samsung Galaxy Tab2 10 Bug reported about Location Demo and Audio Recording

Обиделся. Это же не клон какой-то, это наоборот то, с чего все клоны и делаются. Я его специально для разработки брал, чтобы был самый что ни есть стандартный.

Посмотрел Location Demo. Запустил. Действительно, показывает, что я в Канзасе. Видимо, и Тотошка с Железным Дровосеком где-то рядом. А долгота-широта-то сверху на лейблах — правильные!

Смотрим текст. В Гугл-мап строку передаются координаты, полученные через ToString. В России, я так понимаю, будут они с десятичными запятыми. Ищем 1 мин и находим, как надо эту строку формировать:

support.google.com/maps/answer/18539?hl=ru

Прямо сказано, что через точку. А цепкому глазу к тому же видно, что после точки — 5 знаков. Не 6, не 123, а пять! Переписываем процедуру из демки:

procedure TLocationForm.LocationSensor1LocationChanged(Sender: TObject;
  const OldLocation, NewLocation: TLocationCoord2D);
const
  LGoogleMapsURL: String = 'https://maps.google.com/maps?q=%s,%s&output=embed';
var
  latS, lonS: string;
begin
  { convert the location to latitude and longitude }
  Str(NewLocation.Latitude:8:5, latS);
  Str(NewLocation.Longitude:8:5, lonS);
  lbLatitude.Text := 'Latitude: ' + NewLocation.Latitude.ToString;
  lbLongitude.Text := 'Longitude: ' + NewLocation.Longitude.ToString;

  { and track the location via Google Maps }
//  WebBrowser1.Navigate(Format(LGoogleMapsURL, [NewLocation.Latitude.ToString, NewLocation.Longitude.ToString]));
  WebBrowser1.Navigate(Format(LGoogleMapsURL, [latS, lonS]));
end;



Запускаем. Показывает улицу, дом. Чуть ли не квартиру. Всё правильно.

Я вот сижу и думаю — а сколько в Эмбаркадеро писателям тестов платят, может, устроиться? И сразу всё на всём заработает как часы…
Если про отличия от десктопного приложения — то в первую очередь дизайном интерфейса (ну, понятно, один палец для работы, никаких всплывающих меню и т.п.). А по памяти и быстродействию гаджеты уже догоняют десктопы. Вот у меня на Tab-2 — 1 Gb ОЗУ. Даже неизвестно, чем его можно израсходовать — программа моя ела, я смотрел, лишь 70 Mb. Быстродействие, конечно, пока сильно отстаёт, ну, так не нагружать слишком!
Я тоже читал подобные отзывы (сырая и т.п.). Пост и посвящен в том числе развенчанию некоторых таких легенд. 3D я, например, использовать не стал, да для этого есть та же Юнити с тесселяциями и скелетными анимациями.

А вот что-то «обычное» — панели, кнопки, списки, сетки — это вполне можно делать на Делфи. Если там ещё с базой надо общаться — тогда именно на Делфи (а на чём же ещё?!). Она всегда была именно под это и заточена.

Надеюсь, с конкурса чего-нибудь опубликуют для всеобщего обозрения, вот и посмотрим, что там и насколько серьёзное получилось. У меня-то программа несерьёзная выложена, но красивая. Анимации, звуки и прочее (в 2D).

Будет интересно посмотреть, что у кого получилось.

Information

Rating
Does not participate
Registered
Activity