Quanto conhecimento de C / C ++ é necessário para o desenvolvimento de Objective-C / iPhone?


8

Primeiro, um pouco de fundo. Sou desenvolvedor .Net (C #) e tenho mais de 5 anos de experiência em aplicativos para desenvolvimento web e desktop. Há algum tempo, estou querendo analisar o desenvolvimento do iPhone, mas por um motivo ou outro sempre foi desviado. Finalmente tenho um projeto em potencial no horizonte e agora estou a todo vapor aprendendo essas coisas.

Minha pergunta é a seguinte: eu não faço programação em C / C ++ desde os meus dias de escolaridade, moro em terras gerenciadas desde então. Quanto conhecimento é necessário para ter sucesso como desenvolvedor iOS? Obviamente, o gerenciamento de memória é algo que eu vou ter que estar consciente (embora, com o iOS 5, pareça haver algo chamado ARC que deve facilitar minha vida), mas o que mais? Não estou falando apenas da API C (por exemplo, para obter o pecado de um número, chamo a função sin ()), é para isso que serve o Google. Estou falando de expressões básicas em C / C ++ que o desenvolvedor C # médio desconhece.


2
Por que isso tem algo a ver com C ++?
Sdg

Pelo que li, existem muitas APIs com as quais os desenvolvedores do iOS interagem escritas em C ++. Isso não é verdade?
BFree

C ou Objective-C. Não é necessário C ++.
Terry Wilcox

@BFree, você raramente precisa usar C ++ para desenvolvimento em iOS. A menos que você esteja fazendo algo que exija bibliotecas específicas como o OpenCV ou o Irrlicht, você estará fazendo o Objective-C. O Cocoa Touch está escrito em Objective-C e é o conjunto de estruturas da Apple que você utilizará principalmente.
rightfold

Respostas:


7

Não se preocupe com isso. Se você conhece C suficiente para escrever chamadas de função, entender e escrever expressões aritméticas e lidar com ponteiros, provavelmente estará bem. Você ainda precisará aprender o Objective-C, é claro, mas grande parte do código que escrever será mais Objective-C do que o simples C. C. Acostumar-se ao estilo Objective-C e aprender o Cocoa Touch consumirá muito mais do seu tempo do que revisar C.

Normalmente digo às pessoas que estão começando do zero para aprender C antes de pular para o Objective-C. Eu mantenho esse conselho - aprender C ensinará a você o conhecimento básico que você precisa para trabalhar efetivamente no Objective-C. Você precisa saber o que é uma função, como usar estruturas de controle como loops e instruções condicionais, como os vários tipos de dados básicos funcionam, o que é uma estrutura e assim por diante. E como todo C é um jogo justo no Objective-C, quanto mais C você souber, melhor estará preparado para entender o código que poderá encontrar. Dito isso, muitas tarefas são realizadas de maneira diferente no Objective-C, portanto os idiomas C padrão não são necessariamente os idiomas Objective-C padrão. NSString e NSArray substituem as matrizes de estilo C. Os ponteiros são onipresentes, mas são usados ​​principalmente para se referir a objetos - a aritmética dos ponteiros não aparece com muita frequência.

O mesmo vale para C ++ ... você não precisará de muito C ++ para se dar bem no Objective-C. Em algum momento no futuro, talvez você precise aumentar seu conhecimento de C ++ para integrar algum código C ++ existente em um aplicativo e, nesse ponto, talvez seja necessário gastar algum tempo aprendendo, mas não deixe que a falta de conhecimento de C ++ pare você de tentar sua mão na programação do iOS.


1

Não é uma resposta completa, mas você precisa conferir este pdf se quiser aprender o Objective-C.

É uma leitura muito fácil, se você gosta de ler para aprender idiomas, em vez de examinar exemplos ou códigos de exemplo. Contanto que você tenha uma noção do POO, buscar Obj-C é uma navegação tranquila. O que realmente me incomoda em aprender o desenvolvimento do iPhone é o uso do Xcode, que é outra história ....

Apple Obj-C


0

Depende.

Um subconjunto da linguagem de programação (às vezes chamado de "as partes boas") geralmente funciona bem se seus objetivos não ultrapassam os limites desse subconjunto.

Se você quiser fazer coisas simples da interface do usuário (as coisas que você poderia fazer em um aplicativo da Web), ficar com os tipos de dados Cocoa e Foundation e escrever código sem erros, provavelmente conseguiria conhecer muito pouco do C sob o Objetivo C .

No entanto, se você deseja executar o processamento ou análise de áudio, vídeo, imagem (etc.) no iOS, as APIs e o código de exemplo de referência com o qual provavelmente você estará trabalhando estão principalmente em C e são idiomáticos em C.

Mas o objetivo C é um superconjunto estrito de C, para que erros de digitação e bugs possam se manifestar em qualquer nível do ambiente de linguagem. Se o seu código tiver bugs, talvez seja necessário conhecer as coisas em profundidade no ponteiro C, tipo de dados e nível de heap para analisar uma falha e depurá-la. O objetivo C não é "gerenciado" e, portanto, pode-se criar uma bagunça retorcida na memória, propósito ou como um acidente completo.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.