0

Я пришедший сегодня, потому что я никогда не имел, так как студент, любые курсы о том, как я должен организовать последовательности мобильного приложения. То же самое в Интернете, я не могу найти в этом ничего интересного. Поэтому я открываю этот вопрос!Разработка мобильных приложений - Как это должно быть организовано


Первая страница

Когда я использую запустить приложение, как это работает в фоновом режиме?

-> ли приложение запускается на LoginPage() и попытаться подключиться к API/SERVER? Как только это произошло, пользователь остается на LoginPage() или приложение идет по адресу MainPage()?

-> Запустилось приложение RedirectionPage() и попытаетесь соединиться с API/SERVER? Как только это произошло, пользователь либо перенаправляется на LoginPage() на MainPage(), затем?

-> ли приложение запускается на MainPage() и попытаться подключиться к API/SERVER? Как только это произошло, пользователь остается на MainPage() или приложение отправляется на LoginPage(), если пользователь не подключен?

Конечно, идея заключается в том, чтобы пользователю уже хранящегося на память телефона (см. Ниже)


MainPage который содержит многостраничные/View/Фрагмент

Как Android разработчика & Xamarin.Forms, я знаю, что для Android у вас есть FragmentManager для управления несколько представлений на одной странице (т. е. когда вы должны предоставить форму для заполнения пользователем). На Xamarin.Forms, не существует в данный момент (но Xamarin поставить его на свой белый список) так может быть какой-то другой язык, не существует тоже.

->Итак, как его организовать? Я имею в виду, вы можете иметь 3 Views (3 mainLayout) и сделать их Visible/Invisible. Но это означает, что у вас есть только 1 Controler для 3 Views.

-> Я также учил, что Может быть, мы могли бы загрузить в фоновом режиме каждый страниц в избежать груз, в Navigation время? Но это было бы для большей части информации в динамической памяти нет?


сделки с TCP/IP Connection

Сегодня это не так сложно создать сокет для подключения самого к серверу TCP/UDP, но как вы можете работать с различным разъединением?

-> Socket Errors. Когда у вас возникла проблема, например, остановка сервера, подключение к Интернету устройства, которое останавливается или у которого возникли проблемы с получением сигналов и т. Д. Как вы справляетесь с этим?. Я имею в виду, что вы делаете всплывающее окно, чтобы предупредить пользователя, или вы делаете бесконечный while(true), чтобы попытаться снова подключиться?

-> Скажите, что теперь устройство не может подключиться к серверу из-за проблемы интернет-сигнала, поэтому устройство никогда не сможет подключиться к серверу. Можете ли вы рассказать об этом пользователю или приложение просто будет пытаться подключиться без тайм-аута?


хранимых данных

Лот приложения сегодня данные сохраняются на память телефона, но об этом, делает безопасности должен быть создать для некоторых из этих файлов?

-> Пользователь: По-моему, я сохраняю имя пользователя/пароль в хранилище телефона, чтобы избежать повторного подключения все время, когда приложение запускается. Но эти данные являются персональными, поэтому Должны ли они быть зашифрованы?

-> Настройка/Настройка и Хранятся кэш: Я думаю, что для них, простого файла запись в чем-то, таких как XML можно хранить непосредственно Whithout любого шифрования. Но, чтобы сбежать каждый раз, загружайте данные, angain и снова, . Лучше ли хранить часть их прямо на телефоне?. Если это решение дешевле в обмене данными с Интернетом, то Как организовать их правильное сохранение?. Во многом размер этих файлов может начаться очень важно, и тогда хранилище на внешнем хранилище может быть лучше, не так ли? Но если у пользователя нет чего-то как SD CARD, то можно ли изменить программный путь, путь сохранения к внутреннему хранилищу?

-> Рамки/Выбор языка: Я знаю, что в Android, то SharedPreferences могут быть использованы в целях экономии Values с помощью Keys. В Xamarin Forms что-то подобное существует с Properties Dictonary. Но мне приходит в голову два вопроса: Доступ ли доступ к данным из другого приложения? и Зашифрованы ли данные?. Кроме того, использование этих функций оптимизировано для хранения тысячи значений на примере? Если нет, то какой диапазон данных он оптимизирован?


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

Простым ответом может быть: Прочтите Руководство по разработке приложений, но это большое чтение, которое просто путает себя больше, чем я сегодня.

Благодарим вас за это чтение, если вы просто прочитали или ответили. Я также надеюсь, что этот вопрос будет очень полезен для людей, которые находятся в том же замешательстве, что и я :)

+1

Вы вводите в заблуждение разработку программного обеспечения с помощью техники. Техника имеет правила и правила соблюдаются. В разработке программного обеспечения по существу нет правил, это вообще бесплатный для всех, что когда-либо разработчик лично любит. Исключения составляют финансовые и жизненные программы, такие как самолеты, медицинские и т. Д. Один разработчик считает, что 6000 строк в методе штраф, еще 6 и, как правило, каждый идет своим путем. Ожидаются ошибки (за исключением кода, написанного другими), и даже безопасность обычно не соответствует лучшим практикам. В целом разработчики программного обеспечения не профессионалы. – zaph

+0

Вы правы для какой-то части, спасибо за этот ответ :) – Emixam23

ответ

1

Интересные вопросы и комментарий zaph тоже интересны!

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

Например, если у вас есть стартовая страница и спросите, как она должна быть структурирована, вы хотите использовать async и ждать. После того, как ваша страница будет показана (в XamarinForms вы можете использовать конструктор или onAppearing в зависимости от конкретной ситуации), вы захотите иметь свою фактическую задачу регистрации в запуске потока пользовательского интерфейса. Справедливая сумма вашего времени в Xamarin будет потрачена на принятие разумных решений об асинхронном, ожидании и потоке пользовательского интерфейса, чтобы дать вашим пользователям лучший опыт, сохраняя при этом ваш код поддерживаемым и дружественным к подразделению.

Поскольку ваше сообщение отрывается как серьезное и звучит как развитие предприятия, когда речь идет о локальном хранилище, вам нужно заглянуть в SQLCipher, который предоставит вам шифрование в покое, которое вы ищете. Однако это обойдется вам в 500 долларов за разработчика на целевую ОС.

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

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

+0

Хороший ответ, действительно интересно, спасибо :) – Emixam23

+0

Я бы предложил прочитать Кент Бек, «Дядя» Боб Мартин, у последнего есть видео-серия и подобные авторы. Более 40 лет способ написания кода, личных предпочтений не сильно изменился, изменившаяся, по крайней мере, из моей истории, это принятие ошибок. Профессионалы имеют стандарты, сертификаты и обязательное непрерывное образование, обычно 40 часов в год и период контролируемого опыта около пяти лет. Подумайте о своем стоматологе, адвокате, CPA, MD, даже моей жене. Вы видите это в своих коллегах? Если нет, они не профессионалы. Ученая степень - входная карточка. – zaph

+0

@Mark Конечно, нам не нужно просто следовать письменным правилам, но мы кое-чему научились, и мы не должны продолжать повторять полученные ошибки. Безопасность WRT у нас есть хорошее представление о том, что такое плохие и лучшие практики, которые не являются статичными, но эволюционируют. Итак, почему у нас так много разработчиков совершают те же ошибки? SQL-инъекций, плохой обработки учетных данных для входа, алгоритмов шифрования и шифрования, которые, как мы обнаружили, были разбиты 10 или более лет назад, которые все еще используются в новой работе! Разработчики, которые по тем или иным причинам не охватывают HTTPS и TLS 1.2. Ничто из этого не является профессиональным. – zaph

Смежные вопросы