protego-safe / ios Goto Github PK
View Code? Open in Web Editor NEWAplikacja iOS
License: GNU General Public License v3.0
Aplikacja iOS
License: GNU General Public License v3.0
Is your feature request related to a problem? Please describe.
I wanted to add a one letter nickname and the app didn't allow me to do so.
Describe the solution you'd like
One letter nicknames should be allowed.
Describe alternatives you've considered
Well, I can always add a longer nickname as I think it is basically meaningless but the limitation doesn't make any sense from the user's perspective.
Aplikacja odpytuje serwer i pokazuje Użytkownikowi pomarańczowy status
Po pierwsze chciałbym pochwalić wybór licencji GPL!
iOS jest o tyle problematyczny, że jeśli chcecie akceptować kod z zewnątrz (a zakładam że to jest jeden z celów publikacji) to każdy autor musi się zgodzić na publikację w AppStore. Najlepiej od razu wymagać CLA z odpowiednim zapisem o prawach autorskich, inaczej w przyszłości ktoś może odebrać Wam prawa do swojego kodu za złamanie licencji GPL (ograniczenie ilości instalacji narzucane przez AppStore).
Info: https://apple.stackexchange.com/a/59495
Oczywiście nie jestem prawnikiem.
TBD
Na bieżąco kasujemy informacje o napotkanych urządzeniach starsze niż 2 tyg
Aktualnie struktury BeaconId
oraz ExpiringBeaconId
są używane zarówno w roli lokalnej (własna pula BeaconId
) oraz zdalnej (BeaconId
pobierane od innych użytkowników). Jedną z propozycji usprawnienia implementacji jest wprowadzenie nowych typów LocalBeaconId
, RemoteBeaconId
lub odpowiedników.
Aplikacja odpytuje serwer i pokazuje Użytkownikowi jeden z trzech statusów:
Aktualnie tworząc body do requestów GCP ignorujemy błędy przez uzycie try?
Trzeba dodać obsługę błędów z ucyiem zwykłego try
Originally posted by @mateuszmackowiak in #60
Po uruchomieniu, aplikacja sprawdza czy zainstalowana wersja jest najnowsza i w przeciwnym wypadku Użytkownik proszony jest o zainstalowanie nowszej wersji i przekierowany jest do odpowiedniego sklepu z aplikacjami.
There were no major changes in 4.2.2 just minor fixes but still we need to deliver them into the CHANGELOG file.
ETA closest release.
Wskazówki zawarte w readme pomijają kwestie podpisywania aplikacji certyfikatem, który obsługuje notyfikacje push, przez co próba kompilacji kończy się błędem:
"Your development team, [nazwa], does not support the Push Notifications capability."
Proszę o dodanie self-signed certyfikatów do repozytorium, tak jak robi to np. Telegram, które umożliwią kompilacje każdemu zainteresowanemu.
Inną zaletą tych certyfikatów będzie umożliwienie zewnętrzynm programistom kompilacji projektu i tworzenia pull requestów. W Niemczech stworzony został specjalny profil dla społeczności (ENACommunity), który to umożliwia, wraz ze zmockowanym Exposure Notification API.
Stan obecny:
Stan docelowy:
Beacon ID
s do rozgłaszania.Describe the bug
I received the notification that I was exposured... i click on the notification, it goes to the app but no more text or history of notyfications is available.
So if accidentaly I will clear my notyfications I will not know that I am „in danger”.
Expected behavior
A new tab with notyfications history, to be able to see them and read them.
Screenshots
The notyfications was available here:
Smartphone (please complete the following information):
wg. projektu: ProteGO-Safe/specs#10
TBD
Aktualna implementacja przeprowadza proces synchronizacji poprzez prostą maszynę stanów. Stan SynchronizedBeaconId
jest aktualnie nieużywany w praktyce i może warto go usunąć z implementacji.
Ze względu na to, że numer telefonu nie będzie obowiązkowy (ProteGO-Safe/specs#34 (comment)) użytkownicy mogą zarejestrować się bez podania nr telefonu. API zostanie ustalone tutaj: ProteGO-Safe/backend#67
iOS14 Aplikacja przestała działać po wtorkowym update, (brak połączenia z Apple coronavirus API, czerwony przycisk włącz powiadomienia o koronawirusie przestał działać, ale też przy pytaniu o zwykłe powiadomienia przy pierwszym uruchomieniu nie dało się wcisnąć dalej)
Wydaje mi się że w poniedziałek już na iOS 14 jeszcze mi działało
The CoronaRiskScoring project is trying to assess how different contact tracing apps are being parametrized. For this purpose, we need to know how many TEKs get published per day, and their risk levels (all public information).
Project considered
We are looking at ProteGO-Safe in our issue #10.
What we need
We need to have a procedure describing how to pull down the keys reliably.
What we see
We see the documentation here.
This looks relevant:
EN_STORAGE_URL = https://exp.safesafe.app/
/index.txt
, /{filename}
However when we reach out to endpoint https://exp.safesafe.app/index.txt or https://exp.safesafe.app/1 we get that the "specified key does not exist".
It does not look like we would need to authenticate though. Is the directory currently empty?
Aplikacja działa w tle i na bieżąco zapisuje informacje o wykrytych urządzeniach. W przypadku jeśli aplikacja zostanie wyłączona podejmuje próbę włączenia się ponownie.
Describe the bug
My exposure log was not checked since almost a week.
Expected behavior
I thought that my exposure log will be checked every 24h.
Smartphone (please complete the following information):
Zapraszam do przeczytania ogłoszenia
Opis prozypozycji rozwiązania
Podczas review PR związanego z UI ekranami pokazywanymi podczas wysyłania historii spotkań padł pomysł (#57 (comment)) aby uwspólnić nawigację tej częsci z resztą aplikacji.
Aktualnie wykorzystywany jest na UINavigationController, a reszta aplikacji korzysta z customowego rozwiązania podmieniającego child view controllery
Ze wzgledu na to, że jest to sprawa czysto architektoniczna i nie ma wpływu dla użytkownika, postanowiliśmy przesunąć pracę nad tą częścią po wypuszczeniu wersji 1.0
Aby rozwiązanie było użyteczne aplikacja powinna nadawać oraz odbierać Beacon ID
w tle według możliwości. Należy mieć na uwadze zużycie baterii oraz ograniczenia nakładane na planer systemu operacyjnego.
Stan aktualny:
Wątek ten otwieram w celu dalszej dyskusji co do usprawnień w tym obszarze. Wszelkie uwagi będą mile widziane.
J.w.
Skoro Ministerstwo Cyfryzacji wydało aplikacje, to musi mieć dostęp do chociaż jednego konta deweloperskiego Apple. Moim zdaniem to jest bardzo dobry pomysł żeby devteam zainstalował chociaż na jednym urządzeniu tą betę i to załatał zanim Apple zacznie wydawać te aktualizacje i aplikacja nie będzie działać u obywateli.
Describe the bug
Aplikacja nie działa na iOS 12.5.1 mimo ze Apple wprowadził do niej exposure notification.
To Reproduce
Steps to reproduce the behavior:
N/A
Current behavior
Aplikacja wyswietla notyfikacje ze znajduje sie w trybie offline i trzeba uruchomic moduł BT, (moduł BT jest uruchomiony) a aplikacja pozostaje w trybie offline
Expected behavior
Aplikacja będzie współpracowała z iOS 12.5.1.
Screenshots
N/A
Smartphone (please complete the following information):
Obecna dokumentacja nie informuje o tym jak zweryfikować czy kod źródłowy, który jest w tym repozytorium został faktycznie użyty do skompilowania aplikacji, która jest w AppStore.
Proszę o stworzenie dokumentacji, która umożliwi to szerszej publiczności. Przykład takiej dokumentacji: https://core.telegram.org/reproducible-builds#reproducible-builds-for-ios
Opis prozypozycji rozwiązania
Projekt, nad którym pracuje kilka osób w tym samym czasie powoduje wiele problemów podczas merge kilku równoległych PR. Konflikty najczęściej dotyczą plików projektowych, w tym przypadku .xcworkspace
Opis alternatywnych rozwiązań
Proponuję użycie jednego z narzędzi:
Dodatkowe informacje
Jeśli uważacie to za dobre rozwiązanie, mogę się tym zająć
Ze względów bezpieczeństwa proponuję zmianę flagi dostępności .always
w pliku SecretsGeneratorSpecs na .afterFirstUnlockThisDeviceOnly
.
Btw. Dostępność .always
jest już oznaczana przez Apple jako deprecated - https://developer.apple.com/documentation/security/ksecattraccessiblealways
W dniu dzisiejszym wykonałem świeżą instalację aplikacji na iOS 14.1 (wersja finalna) na iPhone XR.
Ustawienia powiadomień COVID w iOS wyczyszczone. Dane aplikacji ProteGO usunięte i aplikacja również. Następnie świeża instalacja aplikacji i w momencie włączenia funkcji powiadomień w systemie apka przechodzi do systemowych powiadomień o COVID (API iOS) i po przejściu do tego ekranu jest on pusty… Nie da się nic wybrać. Próbowałem w drugą stronę, czyli wybrać z systemu Polskę jako kraj powiadomień i iOS przekierowuje do Appstore i sugeruje instalację ProteGO.
Tym samym nie da się obecnie poprawnie dokończyć instalacji aplikacji i używania powiadomień i wymiany informacji via Bluetooth.
Opis błędu
deviceType
w requeście do API wysyła nazwę urządzenia nadaną przez użytkownika, zamiast typ urządzenia.
Kroki
Oczekiwany zachowanie aplikacji
deviceType
powinien wysyłać typ urządzenia
Urządzenie (proszę wypełnij poniższe informacje dotyczące urządzenia):
Środowisko
Aktualna implementacja nie odczytuje i nie propaguje informacji o TX power. Jest ona konieczna wraz z wartością RSSI do lepszego oszacowania odległości między urządzeniami.
Sugerowane zmiany:
Stan aktualny:
AllowDuplicates
nie jest aktualnie używana (w czasie działania w tle nie jest ona dostępna).BeaconId
(klasa Advertiser
) nie jest pobierane RSSI. (czy istnieje API po stronie PeripheralManager
by to osiągnąć?)This issue is addressed here.
Opis błędu
Po naciśnięciu przycisku menu na głównym ekranie aplikacja crashuje.
Kroki
Oczekiwany zachowanie aplikacji
Aplikacja nie powinna crashować i powinna pokazać menu.
Urządzenie (proszę wypełnij poniższe informacje dotyczące urządzenia):
Środowisko
Dodatkowe informacje
W konsoli urządzenia widzę taką wiadomość: Fatal error: Use of unimplemented initializer 'init(nibName:bundle:)' for class 'ProteGO.HistoryRootViewController'
. Na innym urządzeniu (iPhone XS) aplikacja otwiera menu prawidłowo.
Aktualnie API nie posiada opcji nasłuchiwania stanu Bluetooth, co byłoby przydatne dla użytkowników aplikacji.
W przypadku braku dostępu do Internetu, aplikacja informuje o tym i nie pozwala przejść dalej.
Opis błędu
Użytkownik może wpisać i potwierdzić nr telefonu o długości innej niż 9 cyfr
Kroki
Oczekiwany zachowanie aplikacji
Aplikacja powinna uniemożliwić potwierdzenie nr telefonu o innej długości niż 9 cyfr.
Pole nr telefonu powinno zawierać komunikat błędnej walidacji numeru.
Urządzenie (proszę wypełnij poniższe informacje dotyczące urządzenia):
Środowisko
Kolejne uruchomienie
Aplikacja sprawdza czy Bluetooth jest włączony. Jeśli nie, użytkownik proszony jest o włączenie Bluetooth. Aplikacja nie pozwala pójść dalej bez włączenia Bluetooth (chyba że nie da się skutecznie sprawdzić stanu Bluetooth, wtedy tylko przypomina i przechodzi).
Pierwsze uruchomienie
W przypadku kiedy aplikacja uruchamiana jest po raz pierwszy (nie mamy user_id
), następuje rejestracja aplikacji. Użytkownikowi pokazywane są ekrany startowe:
Powitanie w aplikacji
Akceptacja regulaminu. Regulamin jako link otwierany w przeglądarce.
Wyjaśnienie jak działa aplikacja (może być kilka ekranów)
Prośba o włączenie Bluetooth. Aplikacja nie przechodzi dalej bez włączenia Bluetooth (chyba że nie da się skutecznie sprawdzić stanu Bluetooth, wtedy przechodzi).
Na jednym telefonie możemy mieć zainstalowane różne wersje aplikacji dev, stag, prod. Niech rozgłaszają się różnym uuid
.
As there are many foreigners living in Poland it would be a good idea to have English localization available in the app. Even if most contents from Government won’t be translated the general app information and questionnaire should be possible to do in English.
Wymagania:
Działa na iOS i Android. Obie platformy widzą się nawzajem.
Maksymalnie oszczędza baterię.
Zapisujemy siłę sygnału
Działa w tle. Po zamknięciu aplikacja wybudza się automatycznie.
Co godzinę rozgłaszamy inny identyfikator.
Wykryte urządzenia możemy śledzić np. w BugFender
Prośba o podanie numeru telefonu. Na stałe umieszczony jest przedrostek +48.
Po potwierdzeniu, użytkownik otrzymuje wiadomość SMS na podany numer i wpisuje 6-cyfrowy kod z wiadomości.
Is your feature request related to a problem? Please describe.
I'm ashamed to be living in a country where a PWA app is priced at 2.5m PLN.
Describe the solution you'd like
Make an actual native app, or ask someone else to do this properly.
Describe alternatives you've considered
Not using this app.
Additional context
I beg you, create an actual iOS app that works as it should. I can even make one but please, remove this monstrosity out of the internet.
Aktualna implementacja skanera jest konfigurowana zestawem parametrów przedstawionych poniżej (ustawionych w czasie wstępnych testów). Wartości te powinny zostać odpowiednio zmodyfikowane przed wypuszczeniem aplikacji:
BackgroundTaskEarliestBeginDate
(15 min) - czas uruchomienia BackgroundProcessingTask
w celu kontynuuowania skanowania/rozgłaszania. Według dokumentacji Apple jest to wartość zalecana.PeripheralSynchronizationCheckInSec
(5 sec) - cykliczny czas sprawdzania stanu znanych urządzeń.PeripheralSynchronizationTimeoutInSec
(15 sec) - czas po którym skaner zrywa połączenie, gdy peryferium nie jest w stanie wykonać wszystkich przewidzianych operacji.PeripheralIgnoredTimeoutInSec
(60 sec) - czas ograniczający wysłanie kolejnego "spotkania" w przypadku, gdy jesteśmy w stanie zidentyfikować dane urządzenie jako takie same.PeripheralMaxConcurrentConnections
(3) - maksymalna liczba równoległych połączeń obsługiwanych przez klasę CentralManager
.PeripheralMaxConnectionRetries
(3) - maksymalna liczba ponowień połączenia w przypadku, gdy przewidujemy, że urządzenie będzie miało "stały" MAC address (Android zmienia MAC address co połączenie).AdvertisingOnTimeout
(15 sec) - czas przez który rozgłaszanie jest włączone w tle.AdvertisingOffTimeout
(45 sec) - czas przez który urządzenie nie rozgłasza się w tle.ScanningOnTimeout
(15 sec) - czas przez który skanowanie jest włączone w tle.ScanningOffTimeout
(45 sec) - czas przez który urządzenie nie skanuje w tle.Ze względu na to, że numer telefonu nie będzie obowiązkowy (ProteGO-Safe/specs#34 (comment)) użytkownicy będą proszeni o podanie jakiegoś tekstowego identyfikatora (TBD) przed wysłaniem historii spotkań (encounters). Identyfikator będzie wysyłany na serwer, wraz z historią i tam weryfikowany.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.