Графический интерфейс пользователя

 

Экран главного меню представляет собой фон с кнопкой для перехода к экрану показаний температуры окружающей среды. Splash screen – наболее значимый экран приложения так как именно в нем происходит проверка пользователя, проверка его регистрации, подгрузка пользовательских данных которые были ранее добавлены и многое другое. При первом входе в приложении появляется экран SplashScree в котором в потоке запускаются методы которые проверяют регистрацию пользователя (создается запрос к сервисам FireBase), далее если пользователь не зарегистрирован он его перекидывает на экран регистрации в котором он вводит свои пользовательские данные часть которых храниться в базе данных FireBase а часть в локальном хранилище SharedPreferences. Таким образом я считаю, что наиболее играющую роль играет класс SplashScreen, ведь именно в нем происходят все наиболее важные процессы для дальнейшей визуализации приложения и его корректной работы, рисунок 9.

 

Рисунок 9 – главное меню

 

Реализация в коде:

import android.content.Intent;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.text.TextUtils;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;

public class LoginActivity extends AppCompatActivity {
private EditText edit_mail, edit_password;
private FirebaseAuth firebaseAuth;
private Button btn_login;

@Override
protected void onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout. activity_login);
   Initialize();
   ClickView();
}

 @Override
protected void onPause() {
   super.onPause();
   finish();
}

Mobile Sensors. Данный класс позволяет пользователю не зависимо от подключенных к приложению датчиков снимать показания и знать, что происходит вокруг него. Это возможно благодаря встроенным в телефон сенсорам, в зависимости от модели и года выпуска телефона он будет оснащен достаточным количеством датчиков для того чтобы иметь хорошее представление о том, что происходит вокруг пользователя. Зная это, приложения было оснащено классом который снимает показания с этих самых датчиков: датчик освещенности, датчик температуры, барометр, датчик влажности, датчик индукции магнитных полей, компас, гироскоп, датчик звука и датчик приближенности. Если телефон пользователя в зависимости от модели и года выпуска не располагает таким количеством датчиков, то приложение не будет завершено с ошибкой или аварийно, оно продолжит работать но будет отображать показания только с тех датчиков которые доступны. Устанавливая приложение пользователь будет ознакомлен к каким сенсорам и функциям мобильного устройства он дает доступ приложению, тем самым система предварительно уведомит пользователя о том, что возможно его модель телефона не поддерживает все возможности данного приложения, рисунок 10.

Рисунок 10 – доступные датчики

 

Реализация в коде:

databaseReference.child("temperature").addValueEventListener(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot snapshot) {
           String search = snapshot.getValue().toString();
           txt_level.setText(search);
       }


       @Override
       public void onCancelled(DatabaseError databaseError) {

       }

   });

   databaseReference.child("humidity").addValueEventListener(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot snapshot) {
           String search = snapshot.getValue().toString();
           txt_pressure.setText(search);
       }
       @Override
       public void onCancelled(DatabaseError databaseError) {

     }

   });

   databaseReference.child("bar").addValueEventListener(new ValueEventListener() {
       @Override
       public void onDataChange(DataSnapshot snapshot) {
           String search = snapshot.getValue().toString();
           txt_light.setText(search);

Запуск приложения
Подключение к сетиWiFi
Обновление состояния контроллера
Получение данных с контроллера


             нет

Получение доступа к контроллеру  
Отображение на телефоне


                                                                           да

Передача данных на телефон
                                                                                                   нет

                                                     да

Рисунок 11 – блок-схема работы приложения















































Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: