Programação iOS

RickMetonimia

Power Member
Bom dia malta!

Gostava de aprender a programar em iOS e de ouvir alguns conselhos de possíveis Gurus que andem por aqui a vagear no forum.

Conto com quase dois anos de experiência em Java/Android, tive bases de programação em C, C++ e actualmente estou a trabalhar com C#.

Li pelo nosso Google que a linguagem Swift que a Apple apresentou no início deste ano tem uma sintaxe baseada em várias linguagens mas que se baseia bastante em Objective-C ainda... Posto isto, a minha pergunta é: Por onde é melhor começar a pesquisar e a estudar? Convém pegar no Objective-C de raíz e ir evoluindo até ao ponto em que estou confortavel para pegar em Swift ou posso ir directo ao assunto e em poucos meses já estar a programar para iOS 8?

Avisem-me se estiver a ver as coisas de forma errada por favor :)

Obrigado desde já pelo apoio!

Take care ;)
 
Longe de mim ser um Guru, mas estou ha 1 ano e pouco a trabalhar com iOS (apesar de la no meio ter tido outras coisas). Sinceramente eu diria-te para começares por Objective-C, depois de fazeres algumas coisas básicas e aprenderes as bases, ai avança para o Swift.
 
Isso dos Gurus foi só para a paródia, até pode ser alguém a estudar iOS há dois dias que queira partilhar a experiência até este momento!
Obrigado pelo conselho @Death_Knight!
A título de curiosidade: Como programador iOS já estás familiarizado com Swift e as empresas já pedem isso a quem contratam? Pergunto isso pq quero dar um rumo diferente à minha carreira daqui por uns meses...
 
Eu nao estou familiarizado com ele, alias ainda pouco olhei para Swift :p agora posso e dizer-te o que me disseram a mim:

Um colega meu na nova empresa que tem 5 anos de experiência em iOS diz que "agora e a altura de começar".
Um amigo meu que trabalha para iOS ha 3 anos em Lisboa diz que ja experimentou umas coisas em Swift mas a linguagem esta "demasiado verde".

Eu pessoalmente tenciono fazer 2 ou 3 apps que ja tenho planeadas ha algum tempo e provavelmente uma delas sera em Swift, so para me ambientar.

Em relação a empresas comecei na nova empresa este mês e fiz algumas entrevistas antes disso, praticamente todos me perguntavam "e swift", mas acho que era mais a titulo de curiosidade e não de me contratarem para programar em Swift, pois eu sempre disse que ainda "não tinha olhado muito para ele" e tive propostas na mesma.

ps: so tenho os acentos que o corrector automático colocou pois estou num teclado inglês.
 
Estou a perceber mais ou menos o esquema... Estás no UK certo? Eu também... E sabes bem que aqui o forte é iOS e quem não acompanha bem as tendências do mercado morre na praia.
Vou então seguir o teu conselho e rumar primeiro para umas introduções ao Objective-C... Alguma recomendação em relação a bibliografia?

Ps: Com o tempo vais arranjar maneiras de contornar as barreiras dos teclados estrangeiros... Já estive com um UK e agora escrevo um US e estou sempre a escrever em Português apesar dos layouts dos teclados serem diferentes :p
 
Para começar seja em Objective-C seja em Swift eu aconselhava os tutoriais do Ray Wenderlich.

Sim, em casa uso um portátil com teclado americano configurado para trabalhar como o nosso com os acentos, mas sinceramente no trabalho acho mais cómoda a localização das teclas do teclado inglês.
 
Boa tarde,

Vamos lá desenterrar este tópico :)

Estava a pensar iniciar-me na programação mobile. O objectivo é começar aos poucos criando algumas aplicações para ir aprendendo e criar portfolio e mais tarde (espero que não seja muito mais tarde) fazer alguns trabalhos em freelance part/time. Se a coisa corresse bem pensava em dedicar-me a 100% a isto.

Entre android, ios e windows mobile, parece-me que o ios será aquele que tem a melhor relação procura/oferta. Estou certo?

Se escolher iniciar-me pela programação para dispositivos ios, já percebi que tenho que usar o xcode que só corre em mac. Ora bem, eu não tenho mac, não tenho iphone, nunca tive nunca mexi. Parece-me precipitado da minha parte ir a correr comprar um mac para experimentar isto. O que fariam no meu lugar? Precisava também de um iphone ou o xcode tem um bom simulador que me permita confiar no resultado final que ele me apresenta?

Já tentei instalar o macOs numa virtualbox mas sem sucesso. Talvez seja o hardware que não seja compatível?

Em relação à linguagem de programação, ainda são da opinião que o objective C é melhor, ou agora que o swift está mais maduro e até foi lançado na versão 3, deveria começar pelo swift?

Obrigado!
 
Entre android, ios e windows mobile, parece-me que o ios será aquele que tem a melhor relação procura/oferta. Estou certo?

Esta discussão já deu pano para mangas durante esta semana. Pelos vistos existem aqui no fórum defensores de que o futuro está no desenvolvimento multiplataforma e outros que só vêem futuro (pelo menos nos próximos anos) no desenvolvimento nativo. Como sinceramente não me apetece começar aqui outra "guerrinha" aconselho-te a leres sobre multiplataforma e nativo para tentares perceber qual faz mais sentido para ti.

Se escolher iniciar-me pela programação para dispositivos ios, já percebi que tenho que usar o xcode que só corre em mac. Ora bem, eu não tenho mac, não tenho iphone, nunca tive nunca mexi. Parece-me precipitado da minha parte ir a correr comprar um mac para experimentar isto. O que fariam no meu lugar?

Eu procurei um local que me deixasse fazer o estágio curricular a desenvolver para iOS. Foi assim que comecei.

Precisava também de um iphone ou o xcode tem um bom simulador que me permita confiar no resultado final que ele me apresenta?

Tem. O Xcode tem simuladores de todos os iDevices com todas as versōes de iOS. Dá para experimentar lá tudo.

Em relação à linguagem de programação, ainda são da opinião que o objective C é melhor, ou agora que o swift está mais maduro e até foi lançado na versão 3, deveria começar pelo swift?

Se perguntasses há 2 anos, dir-te-ia para começares por Objective-C. Se perguntasses o ano passado, já pensaria um pouco e dir-te-ia que provavelmente ainda poderias começar com Objective-C mas que Swift já estava bastante bom. Actualmente digo-te que podes começar com Swift. Já é uma linguagem madura, já existem imensos recursos disponíveis online para aprenderes, bem como bons livros físicos se os preferires. A procura de profissionais fluentes em Swift nos últimos 18 meses tem estado sempre a aumentar, o que também leva a pensar no provável futuro risonho que possa existir.

Objective-C é uma linguagem poderosíssima e bastante boa. No entanto é muito propicia a diversos problemas que são muito comuns, tais como memory leaks. Para além disso é uma linguagem diferente do usual e o tempo que se leva a aprender é elevado. Com Swift rapidamente ficas ambientado à linguagem e tens uma app simples (se quiseres começar pelo simples) na Store :p
 
Death_knight, muito obrigado pela tua resposta :)


Esta discussão já deu pano para mangas durante esta semana. Pelos vistos existem aqui no fórum defensores de que o futuro está no desenvolvimento multiplataforma e outros que só vêem futuro (pelo menos nos próximos anos) no desenvolvimento nativo. Como sinceramente não me apetece começar aqui outra "guerrinha" aconselho-te a leres sobre multiplataforma e nativo para tentares perceber qual faz mais sentido para ti.

Eu não me referia ao desenvolvimento multiplataforma. Dentro do desenvolvimento nativo, começar pelo ios será a melhor opção?

Eu procurei um local que me deixasse fazer o estágio curricular a desenvolver para iOS. Foi assim que comecei.

Pois...até parecia uma boa opção, não fosse eu já trabalhar há alguns anos na mesma empresa com contrato sem termo. Sair para ir fazer um estágio numa área diferente, para ver no que dá, parece-me ainda mais precipitado do que investir num computador. Achas que um mini é razoável para desenvolver no xcode ou ficava muito limitado? Estou muito por fora da gama de produtos da apple, mas assim de repente, os mini parecem-me ser os mais baratos.


já existem imensos recursos disponíveis online para aprenderes


Queres deixar alguns exemplos que recomendes? Quer videos/cursos online quer livros..o que recomendares é bem-vindo. Se não for pedir muito, de preferência já com swift 3 :)


Mais uma vez, o meu obrigado pelo teu contributo.
 
Eu não me referia ao desenvolvimento multiplataforma. Dentro do desenvolvimento nativo, começar pelo ios será a melhor opção?

Já experimentaste Android? Para ver se te dá aquele gostinho :p

Eu sou iOS Developer há 3 anos e pouco, sabes porque razão decidi experimentar iOS Development? Por ter gostado tanto de programar em Android :D

Agora a explicação: Experimentei e gostei muito de desenvolver para Android, decidi que aquilo era onde ia fazer carreira. No entanto um amigo meu insistia em quão bom era programar em iOS (eu era todo Android fanboy) e eu para o calar decidi procurar um estágio (tinha que o fazer fosse em que área fosse) a desenvolver para iOS. Ainda gostei mais do que para Android. Comecei aquilo só e apenas para estar lá uns meses e não gostar, a ideia era mesmo não gostar só para continuar na Android master race. O facto de gostar tanto foi uma ironia do catano...

Pois...até parecia uma boa opção, não fosse eu já trabalhar há alguns anos na mesma empresa com contrato sem termo. Sair para ir fazer um estágio numa área diferente, para ver no que dá, parece-me ainda mais precipitado do que investir num computador. Achas que um mini é razoável para desenvolver no xcode ou ficava muito limitado? Estou muito por fora da gama de produtos da apple, mas assim de repente, os mini parecem-me ser os mais baratos.

Eu meto sempre a minha experiência como exemplo, obviamente não estava a dizer para te despedires :p Faz coisas nos tempos livres, é o melhor.

Queres deixar alguns exemplos que recomendes? Quer videos/cursos online quer livros..o que recomendares é bem-vindo. Se não for pedir muito, de preferência já com swift 3 :)

Aqui tens o manual oficial. Tem tudo sobre a linguagem, é muito completo e bom.
Depois também aconselho o site RayWenderlich e o Objc.io que apesar do nome, tem material de Swift.

Eu próprio comecei há uns meses a criar uns tutoriais que ensinavam do 0 a programar em Swift 3 e a ideia era culminarem numa app completa. Ainda fiz os dois primeiros mas depois comecei a passar mais tempo no LoL e menos tempo a programar nos tempos livres, o projecto acabou por ficar parado. Devia de o continuar...

Qualquer coisa podes sempre criar um tópico e ir colocando perguntas, eu passo demasiadas horas aqui na Zwame e respondo-te de certeza :p

Quanto ao hardware, um mac mini sim é suficiente. Não é uma máquina espantosa, mas para programar serve "bem".
 
Já experimentaste Android? Para ver se te dá aquele gostinho :p

Por acaso já. Há uns tempos estava a seguir um tutorial. Não me fascinou. Era engraçado e tal mas talvez a metodologia do tutorial não fosse a melhor. Consistia muito em repetir o que se estava a ver e pouco em perceber porquê. Nos exemplos iniciais é fácil de perceber porquê que as coisas acontecem tal como acontecem, mas quando se chega às aplicações mais interessantes, era só copiar um monte de código que não se percebia o que fazia...Já foi há algum tempo e já não me lembro de grande coisa.

Aqui tens o manual oficial. Tem tudo sobre a linguagem, é muito completo e bom.
Depois também aconselho o site RayWenderlich e o Objc.io que apesar do nome, tem material de Swift.

Já lhes dei uma vista de olhos. Parecem interessantes. O Obj.io é mais à base de ebooks.

Eu próprio comecei há uns meses a criar uns tutoriais que ensinavam do 0 a programar em Swift 3 e a ideia era culminarem numa app completa. Ainda fiz os dois primeiros mas depois comecei a passar mais tempo no LoL e menos tempo a programar nos tempos livres, o projecto acabou por ficar parado. Devia de o continuar...

LoL? Ainda se fosse um jogo de jeito :004: (ps: para os mais sensíveis, estou a brincar. Não tenho nada contra o LoL)
Sim devias continuar. Larga lá os joguinhos e faz alguma coisa util pela sociedade :joker:. Perdeste uma oportunidade para deixar aqui o link para a tua página.

Obrigado!
 
Já lhes dei uma vista de olhos. Parecem interessantes. O Obj.io é mais à base de ebooks.

Também tem versões em papel. Eu tenho um de Core Data que é óptimo.

LoL? Ainda se fosse um jogo de jeito :004: (ps: para os mais sensíveis, estou a brincar. Não tenho nada contra o LoL)
Sim devias continuar. Larga lá os joguinhos e faz alguma coisa util pela sociedade :joker:. Perdeste uma oportunidade para deixar aqui o link para a tua página.

Obrigado!

Eu sei, conveço-me disso imensas vezes, talvez daqui a uns tempos. Eu na altura até aqui criei um tópico. Não o continuei porque não arranjei uma maneira simples de explicar de maneira a não ser só copy/paste...
 
Eu acabei há coisa de meia hora atrás de conseguir instalar o macOs numa virtualbox. Não foi fácil. Ainda não tenho a certeza se é viável. Primeiro é muito lento e eu tenho um bom pc. Segundo a resolução é de 640x320 e o virtualbox não tem o guest addiction que permite fazer full screen para mac, então tenho mesmo que trabalhar nesta resolução. Depois tem outras coisas como o scroll do rato trabalhar ao contrário, não detectar a tecla ctrl, etc.

O xcode corre na maquina virtual que criei, mas como deves imaginar, com esta resolução fica tudo muito pequeno e muito pouco prático. Ainda se não fosse tão lento...
 
Eu desenvolvo para mac os desktop numa máquina virtual (e corre bastante bem). Esqueçam o virtual box, o vmware virtualiza o mac os muito melhor.

Para programação desktop é viavel usar a vm para IOS já não sei.
 
Tive que interromper por uns tempos mas voltei agora à carga :)

Instalei o VMWare como sugerido. Foi muito, mas muito mais fácil de instalar do que o VirtualBox e a performance é também muito melhor. Tenho resolução FullHD que só por si já me aumenta muito o rendimento, mas para além disso o sistema está fluido.

Obrigado pela sugestão!
 
Boa tarde,

Estou a seguir este tutorial

https://developer.apple.com/library...4.html#//apple_ref/doc/uid/TP40015214-CH6-SW1

Quando no simulador tento aceder à galeria de imagens, a aplicação "cracha" e dá-me este erro:

"This app has crashed because it attempted to access privacy-sensitive data without a usage description. The app's Info.plist must contain an NSPhotoLibraryUsageDescription key with a string value explaining to the user how the app uses this data."

Pelo que percebo, tenho que acrescentar no info.plist permissões de acesso à galeria mas não sei como o fazer.

Alguém me dá uma ajuda pf?

Obrigado.
 
Back
Topo