SQLite parte 2: Preparando a aplicação para a integrção com SQLite

    É possível iniciar uma aplicação de iOS com o SQLite integrado, porém, isso pode ser feito apenas para o template de Master Detail Application e nem de longe essa é a abordagem mais didática pela quantidade de código existente. Também é possível que você queira começar com outro tipo de aplicação, como game kit ou tabbed view application e aí a integração precisa ser feita manualmente.

    Em teoria, o processo é simples: basta incluir e linkar uma biblioteca na nossa aplicação. Mas na prática é necessário um pouco mais de conhecimento da interface do Xcode.

    Vamos começar criando um novo projeto. Dê um nome qualquer e quando for solicitado o template, sugiro o Single View Application por ser a forma mais básica de se iniciar um aplicativo. Não é importante para esse caso em específico mas você deve sempre marcar o uso de Storyboards e ARC, o contador de referências do Obj-C. Não marcar isso é garantia de dor de cabeça para os iniciantes em Obj-C. No futuro posso falar mais sobre essas duas opções, em especial ao ARC e porque você deve amá-lo.

    Então vamos incluir a biblioteca SQLite ao nosso projeto. Na tela inicial do Xcode, no canto esquerdo deve aparecer o nome do seu projeto, com um ícone de App (Aquela folha azul com um “A”). Selecione-a e imediatamente à direita vai aparecer PROJECT e TARGETS. Selecione o Target que possui o nome do seu App. Nas abas, selecione Build Phases e expanda “Link Binary With Libraries”. Pronto, estamos no local correto. Agora basta clicar no “+” para adicionar uma nova biblioteca.

    Xcode_4.2_add_build_library

    Como você pode ver, existem várias bibliotecas disponíveis. Queremos apenas libsqlite3.dylib.

    Se você é novo no Xcode, estamos mexendo exatamente na parte da configuração que inclui os arquivos necessários ao nosso App. Por exemplo, se adicionarmos uma imagem é também nessa aba que informamos ao compilador a existência da imagem e que ela deve ser anexada ao pacote do aplicativo como recurso. Por sorte o Xcode trata de forma automática esse tipo de coisa mas já me deparei com situações em que eu precisei adicionar e remover recursos manualmente. Se você se deparar com essa situação, esse é o lugar.

    Por último, basta abrir o header de onde você vai fazer a manipulação do banco de dados e adicionar no topo do arquivo:

    Funções importantes do SQLite
Quando você utiliza um banco de dados SQLite, é bom saber uma pequena lista de funções úteis escritas em libsqlite.dylib. Algumas são:

sqlite3_open() – Abre um arquivo de banco de dados. Se o arquivo não existe, ele é criado.
sqlite3_close() – Fecha uum banco de dados aberto anteriormente.
sqlite3_prepare_v2() – Prepara para execução um código SQL
sqlite3_step() – Executa o código preparado com a função sqlite3_prepare_v2()
sqlite3_column_<tipo>() – Retorna um campo dos resultados de uma operação de busca. <tipo> é substituido como o tipo de dados a ser extraído (text, blob, byts, int, int16…)
sqlite3_finalize() – Apaga o código SQL armazenado anteriormente com sqlite3_prepare_v2()
sqlite3_exec() – Combina a funcionalidade de sqlite3_prepare_v2(), sqlite3_step() and sqlite3_finalize() em uma única chamada.

    Declarando um banco SQLite
Antes de tudo, precisamos declarar as variáveis da nossa aplicação que irão trabalhar diretamente com o banco. Fazemos isso incluindo diretamente no arquivo .h:

    Abrindo um banco de dados
Uma vez declarado, o arquivo deve ser aberto com a função sqlite3_open(). Se o arquivo não existe, ele é criado nos recursos do aplicativo. A sintaxe completa da função é a seguinte:

    Na sintaxe acima, arquivo é um caminho (path) para o arquivo do banco de dados na forma de uma string UTF-8 e o bancodedados é a referência para a estrutura sqlite3. O exemplo completo de criação fica conforme abaixo:

    Isso é tudo o que você precisa sabar para integrar um banco SQLite ao seu App. Na próxima parte vamos executar comando básicos sobre esse banco, como o CREATE e DELETE.

Comments Are Closed