Tag Archives: Objective-C

[iOS app] MaxVideo.pl client application

Since some time in App store you can find and test my client application for MaxVideo.pl service.

This service is video storage service where users can store their own movies and can share this movies to friends by sending direct link to it. Web site policy is to do not have any search feature because all files are private users files and only users can decide who can or who can not watch their movies.

I wanted their movies for my different and private project so we made a “deal” they will give me access to their api and i will make an application for them.

So now if you have our own movies on MaxVideo or you have friends who store movies there you can watch it directly on your iphone or ipad. Only what you need to have is valid account.

Application is available for free in App Store – have fun and leave comment if you want 🙂

In this project i used may favorite technology (for now) for programming mobile devices – it is combination of PhoneGap, jquery and jquerymobile.

20130213-213631.jpg

If you have an android device and you want to use this application on android you can try this apk. I don’t use android any more so i don’t know if everything is working ok, but this is compiled PhoneGap project for android with my app, so feel free to test it and let me know if it works or not.

 

Plan lekcji na iPhone już trafił do App store

Od jakiegoś czasu pracowałem nad odświeżoną wersją mojego programu do planu lekcji i dzisiaj w końcu trafił on do App Store.

Mamy nowy design in nową funkcjonalność, więc tutaj krótka lista co teraz program potrafi:

  • Obsługuje dowolną liczbę uczniów (dzieci)
  • każdy z uczniów może mieć zdefiniowany dowolny plan godzin lekcyjnych (kiedy lekcje się kończą lub zaczynają)
  • przy tworzeniu planu lekcji na konkretny dzień można rozpocząć od wstawienia standardowego planu godzin i wtedy tylko wypełnić już kolejne lekcje, a niepotrzebne godziny usunąć
Teraz kilka screenów z aplikacji:
Czekam na wasze opinie, komentarze i pomysły co by tu jeszcze zmienić.

Iphone Contact Exporter

Wczoraj pojawił się mały problem. Michał kombinował jak by tu wydłubać kontakty z Iphone ale jednocześnie nie synchronizować go z niczym. Pomyślałem, że dobrym pomysłem byłoby wyeksportowanie kontaktów do pliku CSV i przesłanie ich mailem. Potem można już z tym zrobić co się chce.

Napisałem więc prostą aplikację i wrzucę kawałki kodu źródłowego, bo może ktoś jeszcze będzie chciał z tego skorzystać.

Na początek importy:

Dla dostępu do książki adresowej potrzebujemy:

#import <AddressBook/AddressBook.h>
#import <AddressBookUI/AddressBookUI.h>

Do wysłania emaila będziemy potrzebować jeszcze:

#import <MessageUI/MessageUI.h>
#import <MessageUI/MFMailComposeViewController.h>

Dodatkowo trzeba dodać w deklaracji naszego view controllera obsługę protokołu <MFMailComposeViewControllerDelegate>

Kod do importu książki adresowej wygląda tak:

- (IBAction)Import:(id)sender {
    ABAddressBookRef ab=ABAddressBookCreate();
    CFArrayRef people=ABAddressBookCopyArrayOfAllPeople(ab);
    CFIndex ii=ABAddressBookGetPersonCount(ab);
    NSString *wszystko=@"";
    for(int i=0;i<ii;i++)
    {
        ABRecordRef record=CFArrayGetValueAtIndex(people, i);
        NSString   *FirstName=(__bridge NSString *)ABRecordCopyValue(record, kABPersonFirstNameProperty);
        NSString   *LastName=(__bridge NSString *)ABRecordCopyValue(record, kABPersonLastNameProperty);
        NSArray *Email=(__bridge NSArray *)ABMultiValueCopyArrayOfAllValues(ABRecordCopyValue(record, kABPersonEmailProperty));
         NSArray *Phone=(__bridge NSArray *)ABMultiValueCopyArrayOfAllValues(ABRecordCopyValue(record, kABPersonPhoneProperty));

        NSString *outputRecord=[NSString stringWithFormat:@"%@; %@; %@; %@\n",FirstName,LastName,[self arrayToString: Email],[self arrayToString: Phone]];

        wszystko=[wszystko stringByAppendingString:outputRecord];
    }

    [OutputContactList setText:wszystko];
}

Zaimportowane kontakty z będą zapisane jako tekst oddzielany średnikami – po jednej linii na kontakt. Importuję tylko pola: imię, nazwisko, wszystkie numery telefonów i wszystkie adresy e-mail.

Na końcu przygotowane dane wrzucam do TextView OutputContactList

W związku z tym, że numery telefonów i emaile są przechowywane w tablicy zrobiłem sobie jeszcze jedną pomocnicza funkcję:

- (NSString *)arrayToString:(NSArray *)ar
    {
        NSString *s=@"";
        int i=0;
        if([ar count]>0)
        {
        for(NSString *pozycja in ar)
        {
            i=i+1;
            s=[[s stringByAppendingString:pozycja] stringByAppendingString:@";"];
        }
        }
        for (int j=i;  j <= 3 ;j++)
        {
            s=[s stringByAppendingString:@";"];
        }
        return s;
    }

Przekształca ona tablice na ciąg 4 elementów oddzielanych średnikami – jak tablica jest mniejsza to dopełnia ją – zakładam, że nie będę miał więcej numerów telefonów lub adresów email.

Pozostaje jeszcze wysłanie emaila z danymi:

- (IBAction)sendMail:(id)sender {
    MFMailComposeViewController *mailController=[[MFMailComposeViewController alloc]init];
    [mailController setMailComposeDelegate:self];
    [mailController setMessageBody:[OutputContactList text] isHTML:NO];
    [mailController setSubject:@"Sending contacts"];
    NSArray *recp=[[NSArray alloc]initWithObjects:[emailAddress text], nil ];
    [mailController setToRecipients:recp];
    [self presentModalViewController:mailController animated:YES]; 
}

Ten kod otworzy okienko i przygotuje e-mail do wysłania.

Pozostaje jeszcze obsłużenie zamknięcia okna:

-(void ) mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error
{
    [controller dismissModalViewControllerAnimated:YES];
}

I właściwie gotowe.

Efekt końcowy u mnie wygląda mniej więcej tak:

 

Jeżeli macie pytania to zapraszam do komentowania

Plan lekcji na iPhone

Update – nowa wersja programu jest w App store – wszystkie informacje na ten temat są dostępne tutaj

Jakiś czas temu Krzysiek wpadł na pomysł, że fajnie byłoby mieć aplikację, w której można by zapisać plan lekcji swoich dzieci po to, żeby wiedzieć o której kończą zajęcia i kiedy mają jakie lekcje.

W tym roku moje dzieciaki poszły do szkoły i okazało się, że to całkiem niezły pomysł, jednak jakoś nie było czasu na jego wdrożenie.

Tak się jednak złożyło, że ostatnio sprawdzałem jak działa obsługa Sqlite w iOS więc postanowiłem jako wprawkę zrobić ten projekt.

Oto filmik, który pokazuje efekt:

Funkcje jakie mamy w tej chwili to:

  • wprowadzanie imion dzieci
  • oddzielne plany dla każdego dziecka
  • plan na kolejne dni tygodnia (włączając sobotę i niedzielę)
  • plan podzielony na dwie części – lekcje i zajęcia pozalekcyjne

Planuję udostępnić tą aplikację w app store więc pojawi się tutaj link do niej.

Czy macie sugestie odnośnie funkcji?

 

Info, aplikacja nagle wylądowała w top chart, nie wiem co z tym zrobić, bo nie chciałem już rozwijać tej wersji….

Speech – usprawniłem odrobinkę systemowe text to speech osx lion

W ramach poświątecznych porządków, zebrałem się w sobie i dorzucam stare rzeczy, o których chciałem pisać już dawno.

W momencie, kiedy pojawił się Mac OS X 10.7 pojawił się też polski lektor w systemowym text ot speech. Generalnie działa rewelacynie, szczególnie, że można ściągnąć dodatkowe głosy. W związku z tym, że ostatnio stałem się wielkim fanem audiobooków bardzo zainteresowało mnie to. Niestety wbudowane odtwarzanie mowy na text troszkę kuleje – nie ma chociażby możliwości pauzowania dźwięku i odtworzenia go ponownie. Można tylko odtworzyć cały tekst jeszcze raz.

W sumie to dość zabawne, bo sam OS X w swoim API ma NSSpeechSynthesizer, który ma bardzo dużo fajnych możliwości. Pobawiłem się nim trochę i od jakiegoś czasu mam programik, który nazwałem Speech i którego podstawowym zadaniem dla mnie jest odczytywanie tekstu a także tworzenie plików do audiobooków.

Program wraz z całą jego instrukcją obsługi (notatki na screenie) wygląda tak:

Jak widać – nie jest specjalnie skomplikowany – w sumie taki miał nie być.

Jeżeli chcecie potestować to możecie ściągnąć go stąd jeżeli ktoś chce kod źródłowy proszę dać znać to też go udostępnię.

Miłej zabawy i czekam na opinie/komentarze/sugestie

Klient mamopony.pl na iPhone

Postanowiłem zrobić klienta storny mamopony.pl na iPhone. Ta aplikacja jest realizacją mojego małego pomysłu na zrobienie natywnych aplikacji dla iPhone do obsługi sklepów internetowych. Tutaj mamy wyszukiwanie i prezentację danych sklepu, natomiast nie ma tutaj funkcojonalności dokonywania zakupu, jednak to w tej chwili nie jest już żaden problem.

W tej chwili aplikacja pozwala na wyszukiwanie aktualnych danych ze sklepu – wyszukujemy opony dla samochodów osobowych w zależności od sezonu (letnie/zimowe) i rozmiaru.

Aplikacja odpytuje stronę internetową sklepu i prezentuje odebrane dane w formie listy, po wybraniu interesującej nas opony wyświetlane są szczegóły opony wraz zwiększym zdjeciem.

Teraz garść zrzutów z aplikacji:

Okno wprowadzania parametrów wyszukiwania:

Okno listy znalezionych opon:

i szczegóły wybranej opony:

Dodatkowo krótka prezentacja, którą umieściłem na youtube – prezentacja jest po angielsku

Jak zwykle czekam na wszelkie info

Transmisje żużla na iPhone

Tak jak pisałem wcześniej mój plan stworzenia klientów na dla mojej aplikacji do podglądu transmisji żużla trwa nadal.

Gotowa jest już aplikacja dla iPhona. Niestety nie mam konta developerskiego (jeszcze) i nie mogę jej umieścić w app store, więc można się nia bawić tylko w symulatorze, ale screeny już są.

Więc, najpierw główne okno aplikacji z listą transmisji

Standardowo, jak w poprzednich wersjach lista transmisji odświerza się przyciskiem odświerzenia w lewym górnym rogu programu.

Po wybraniu transmisji jesteśmy przeniesieni do zakładki ze szczegółami transmisji, gdzie dostępne są trzy sekcje:

1. biegi – opis wszystkich biegów

2. drużyna 1 – informacje o zawodnikach pierwszej drużyny

3. drużyna 2 – informacje o zawodnikach drugiej drużyny

To w zasadzie tyle. Tym razem nie będzie pliku do ściągnięcia, bo w sumie i tak nie mozna go zainstalować, chyba, że ktoś zna jakiś sposób – wtedy proszę o info – to wrzucę.

Transmisje żużla na Mac OS X

Wpadłem na nowy pomysł – postanowiłem rozbudować moją aplikację do podglądu transmisji żużlowych o klientów na inne platformy. Pomyślałem sobie, że będzie to niezła wprawka dla mnie i okazja do nauki programowania dla Maca i iPhone/iPad. Docelowo chciałbym, żeby program działał jeszcze na Windows – aplikacja desktopowa, w przeglądarce przez Silverlight, na Androidzie (to już jest), na Windows Phone 7 oraz Mac OSX – (to dziś) i iPhone/iPad.

Dziś Mac OS X

Aplikacja działa tak jak aplikacja na androida, czyli na w pierwszej zakładce mamy listę dostępnych transmisji (jeżeli na zuzelend.com dostępne są transmisje) lub dwie testowe (jeżeli nie ma żadnych dostępnych transmisji)

Listę transmisji aktualizuje się przyciskiem “Pobierz listę aktualnych transmisji”.

Następnie należy kliknąć wybraną transmisję, wtedy zostanie wczytana wybrana transmisja i zostaniemy przeniesieni do zakładki ze szczegółami

Tutaj widzimy przebieg transmisji – kolejne biegi i wyniki w kolejnych biegach oraz zawodników, którzy w nich uczestniczyli (tak jak w wersji dla Androida).

Na dole okna mamy dwie listy z nazwiskami zawodników obu startujących drużyn.

Odświeżamy transmisję manualnie klikając przycisk “Odśwież wynik”).

Aktualna wersja aplikacji dostępna jest do pobrania tutaj.