Walkę z prokrastynacją czas zacząć. Dla mirków spod tagu #programowanie i #ios #osx dzienna dawka z materiałów do #swift i #objectivec

10.04.2016
Na początek coś dla nowicjuszy (choć nie tylko) - materiały do nauki:

Ogromny zbiór książek, artykułów, tutoriali, pluginów i bibliotek:
https://github.com/vsouza/awesome-ios

Strony:
https://www.objc.io/
https://teamtreehouse.com/
http://www.raywenderlich.com/
http://cognitivedesign.com/index.html
http://nshipster.com/

Dokumentacja Appla jest na prawdę solidna:
https://developer.apple.com/library/ios/navigation/

Polecam na początek też WWDC od 2008 w górę:
https://developer.apple.com/videos/

Z książek:
https://www.bignerdranch.com/
http://shop.oreilly.com/product/0636920044352.do

Z kursów
@onomatobeka: Swift działa na Linuksie, ale to będzie sam kompilator, więc szału nie będzie, a poza tym biblioteki od UI iOS i inne typowo iosowe nie zadziałają. Możesz próbować postawić macosx na wirtualce.
  • Odpowiedz
Jestem zielony w objective-c ale zostałem zmuszony do napisania prostego liba, który zwróci mi zdjęcia i filmy z mojej biblioteki na telefonie. Napotkałem na pewien problem podczas generowania ścieżki do pliku. Dla zdjęć wszystko jest ok, ale dla plików video nie do końca. Robie to w prymitywny sposób

NSString *filename = [asset.localIdentifier substringWithRange:NSMakeRange(0, 36)];
NSString *url = [NSString stringWithFormat:@"assets-library://asset/asset.MOV?id=%@&ext=MOV", filename];

Chodzi o to, że generuje mi ścieżkę do pliku, ale po odczytaniu
w takim wypadku to moze nie czekasz az sie pierwsze wysle i idziesz do nastepnego przerywajac proces i dlatego tylko ostatnie daje rade


@siwymilek: to pierwszy pomysl na który wpadłem :P ale nie mam pojecia dlaczego nie dziala asynchronicznie tu a tam dziala. Z video sprawdziles i jest problem?
Tak czy siak #bojowkanatywnychaplikacji
  • Odpowiedz
@marekaurelius: Nie rozumiem pytania, ale generalnie domknięcia mają sens w językach z pierwszoklasowymi funkcjami i wykorzystuje się je do powiązania środowiska z funkcją

I celem tego jest skrócenie mi pracy ?

?
  • Odpowiedz
w niektórych ubogich językach używa się funkcji anonimowych jako let dla biedaków, ale nie po to nasi dziadkowie wymyślali lukier składniowy, żebyśmy pisali (function (x) { return x*x; })(2+3) jak zwierzęta


śmiechłem
@fnord23:
  • Odpowiedz
Mireczki spod tagu #iosdev (również #swift). Potrzebuję do projektu dodać pionowy ProgressView (najlepiej z możliwością ustawienia koloru gradientowego). Niestety w domyślnym ProgressView nie mogę zmienić szerokości paska (mam to pole zablokowane - przesyłam screen) - nie wiem dlaczego. Dodatkowo standardowy ProgressView nie wspiera gradientu (tylko jeden kolor). Może ma ktoś rozwiązanie na ten problem?

Szukałem również innych bibliotek i znalazłem . Jednak nie wiem jak mogę ją dodać do projektu
loginek0 - Mireczki spod tagu #iosdev (również #swift). Potrzebuję do projektu dodać ...

źródło: comment_hiabZoOD53CHMkRR2jah4GPJbIGEg1Jr.jpg

Pobierz
#iosdev Czy w #swift jest coś podobnego do "handlera" (znanego np. z Androida)? Podaję przykład co chcę osiągnąć - chcę odpalić funkcję, która po X sekundach (np. 5) pokaże mi jakiś tekst (lub zrobi cokolwiek). Oczywiście mógłbym to zrobić w jakieś pętli, sleep(1) i porównywać i zakańczać, ale nie ma lepszego sposobu?
Mireczki, szybkie pytanie z #iosdev #swift . Mam swoją klasę i chciałbym z jej poziomu odnieść się do labela, którego mam w ViewController. Oczywiście label mam zadeklarowany:

@IBOutlet weak var status: UILabel!
I z poziomu ViewController działa poniższy kod:

self.status.text = "test";
Jednak gdy chcę z poziomu mojej klasy zmienić tekst to po wpisaniu:

ViewController().status.text = "mojtekst";
Program się kompiluje, jednak wywala błąd podczas działania:

fatal error: unexpectedly found nil while unwrapping
@loginek0: viewcontroller posiadający outlet w momencie akcji w klasie nie utworzył jeszcze tego labela. Daj brejkpoint i zobacz czy ten obiekt nie jest pusty na którego piszesz tekst.
  • Odpowiedz
@loginek0: IBOutlety są inicjalizowane dopiero w viewDidLoad() (albo awakeFromNib()). Jak koniecznie chcesz mieć dostęp do outleta bez pokazywania kontrolera, to możesz to wymusić wywołując getter dla view tego kontrolera.
  • Odpowiedz
Cześć. Chcę rozpocząć programowanie w #swift. Nie mam żadnego doświadczenia z firmą #apple, jednak mam zamiar to zmienić. Znam podstawy w C, C++ i jakieś tam podstawy z Arduino. Celuję w rozwijanie swoich sił w tworzeniu aplikacji na #ios, a testowanie póki co na symulatorze w Xcode. No i tu proszę o pomoc w doborze narzędzia. Zastanawiam się nad tym jaka maszyna mi umożliwi tworzenie aplikacji i wyczytałem, że
@matoex: Bawić się można, ale sama składnia języka to 10% sukcesu - na takich symulatorach nie poznasz API które jest kluczowe. Bawić się można ale to jak kopanie fosy łyżeczką.

Co do monitora to miałem jakieś korporacyjne Delle - nic niezwykłego, ot 2x IPS 24" 1080p. To czy potrzebujesz przenośnej maszyny to kwestia indywidualna - część osób które znam nie wyobraża sobie niczego innego niż iMac a ja z kolei wolę
  • Odpowiedz
@wczoraj: Język wbrew pozorom może dużo opóźnić jak masz do czynienia z zupełnie innym paradygmatem programowania. Drugą rzeczą która może powodować opóźnienia jest API i frameworki które są potrzebne do zbudowania aplikacji, no ale nieważne.
  • Odpowiedz
Dobry wieczór wszystkim Mirkom.

Pewnie takich wpisów jak mój była nieskończoność, ale... mam pewien duży problem. Chcę nareszcie nauczyć się robić coś ciekawego w programowaniu, bo aktualnie zajmuje się webdevem (dopiero 2 lata komercyjnie): back-end i zabawa w Laravelu, Symfony (tak, znam żarty o programistach php). Szczerze mówiąc nie jara mnie to, bo rzecz, która najbardziej mi się podoba i chciałbym ją wykonywać w życiu smutnego programisty to aplikacje mobilne (nie gry).
@FREEQ: Dobra, jako że siedzę już trochę w deweloperce iOSa to może pomogę.
Z materiałów dostępnych w necie to z tego co pamiętam, mogę polecić:

http://nshipster.com/
https://www.objc.io/
https://teamtreehouse.com/
http://www.raywenderlich.com/
http://cognitivedesign.com/index.html

Jak sobie jeszcze coś przypomnę to wrzucę więcej.

Wiadomo, dokumentacja Appla jest na prawdę solidna i dobrze tłumaczy większość zagadnień:
https://developer.apple.com/library/ios/navigation/

Polecam na początek też WWDC od 2008 w górę (fajnie wytłumaczone storyboardy i auto layout, ale nie tylko)
https://developer.apple.com/videos/

Z
  • Odpowiedz
@wczoraj: w Javie też można. kiedyś oddaliśmy na zaliczenie projekt gdzie metody i klasy były nazwane pojedynczymi znakami, bo 'fajnie wyglądały'. Gościu się pośmiał, ale szybko pokazał, że łatwo zapomnieć co metody robią, dostaliśmy po 2 i na następny raz już się tak nie wygłupialiśmy. Chociaż bałwanki były fajne.
  • Odpowiedz
Cześć mirki, mam pytanie z dziedziny programowania, ciekawi mnie temat pisania apek na iOS w Swiftcie i tu rodzi się moje pytanie: jest jakieś środowisko inne niż te jabuszkowe? w sensie czy da się w tym pisać nie mając Maca? Może są jakieś Windowsowe / Linuxowe środowiska do tego języka? Bo nie uśmiecha mi się kupowanie maca tylko po to żeby spróbować jak się w tym pisze ( ͡° ʖ̯
no w sumie tak, ale jakby nie patrzeć trzeba składać stacjonarkę od nowa specjalnie żeby dobrać odpowiednie podzespoły, a jakieś kilkuletniego airbooka


@brusef: dlatego nikt normalny nie składa hackintosha ,aby zyskać wydajność macbook :) Celuje się w wydajność MacPro
  • Odpowiedz
@FunkyMonkey: warto znać podstawy języka i składnie, bo pewnie czasem będziesz musiał korzystać z bibliotek, tutoriali, przykładów itp napisanych w objc. Ale skupił by się głównie na Swiftcie.
  • Odpowiedz
Czołem mirki!

Moja super-fajna praca inżynierska w Swifcie posuwa się do przodu - skończyłem pisać kod! Przedstawiam Wam mój mały pakiecik do komunikacji z API RESTowymi: iModel + iService + iPromise.

Głównym założeniem była minimalna ilość kodu potrzebna do komunikacji z API, dlatego cały pakiet posiada wiele domyślnych ustawień, które sprawiają, że podstawowe działanie out-of-the-box wymaga minimalnej ilości kodu. Oczywiście, jeśli ktoś ma fetysz konfiguracji, wszystko można rekonfigurować na różne sposoby :)
@dzana: Jasne, zgodzę się, że takie komentarze nic nie wyjaśniają, a tylko nabijają objętość plikom źródłowym. Zwróć uwagę, że komentarze pełnią też rolę dokumentacji (swiftdoc), która z nich jest generowana.

Z drugiej strony można się zastanawiać nad sensem pisania w dokumentacji, że enum ValidationState reprezentuje stan walidacji obiektu...

Przy kolejnych releasach poprawię jakość komentarzy, tzn. zamiast się powtarzać napiszę coś więcej.
  • Odpowiedz