No aplicativo do Beco é possível ver as últimas notícias, eventos e festas da sua região SP/RS.
Também está disponível nessa versão o acesso a redes sociais como Twitter e Facebook. Neles você pode fazer login, re-twittar e curtir os posts.
Mais um aplicativo desenvolvido pela DigitalDesk e mais para meu currículo.
Beco 203 na APP Store
quarta-feira, dezembro 21, 2011
segunda-feira, outubro 31, 2011
Colda Kasar's Domain
Meu primeiro jogo na AppStore! Para quem vem acompanhando desde que fiz meu primeiro jogo, sabe que pra mim é muito mais do que uma conquista.
Durante muito tempo desenvolvi protótipos de jogos e sem sucesso nunca havia publicado nenhum deles. Até mesmo o jogo que eu desenvolvi para meu TCC acabei não dando continuidade e se perdeu com o tempo.
Em 2011 fiz uma parceria com a DigitalDesk e consegui concluir esse que é um dos meus sonhos e objetivos na vida. Agora se o jogo será um sucesso eu ainda não sei. Espero que gostem do jogo e que ele seja a porta de entrada para meu futuro com os games.
Veja mais em:
Facebook
Hot site
AppStore
Durante muito tempo desenvolvi protótipos de jogos e sem sucesso nunca havia publicado nenhum deles. Até mesmo o jogo que eu desenvolvi para meu TCC acabei não dando continuidade e se perdeu com o tempo.
Em 2011 fiz uma parceria com a DigitalDesk e consegui concluir esse que é um dos meus sonhos e objetivos na vida. Agora se o jogo será um sucesso eu ainda não sei. Espero que gostem do jogo e que ele seja a porta de entrada para meu futuro com os games.
Veja mais em:
Hot site
AppStore
quinta-feira, outubro 06, 2011
quarta-feira, agosto 24, 2011
Curso de .NET Avançado -120 horas
OBJETIVOS
O curso tem como objetivo formar profissionais com qualificação em desenvolvimento voltado a web, utilizando as mais avançadas ferramentas do mercado. O aluno aprenderá desde conceitos básicos de web até desenvolver e gerenciar conteúdo do site utilizando autenticação e banco de dados.
PÚBLICO-ALVO
Profissionais com conhecimentos básicos em programação.
MATRÍCULAS
Até 29/09/2011 na APM-Liberato, das 8h às 21h, mediante o pagamento da primeira parcela, a apresentação do comprovante de residência e cópia do RG e do CPF (se menor de idade, apresentar documentos do pai/mãe ou responsável). Endereço: Rua Inconfidentes 395, bairro Primavera – Novo Hamburgo/RS – Fone: 3584-2029.
O curso tem como objetivo formar profissionais com qualificação em desenvolvimento voltado a web, utilizando as mais avançadas ferramentas do mercado. O aluno aprenderá desde conceitos básicos de web até desenvolver e gerenciar conteúdo do site utilizando autenticação e banco de dados.
PÚBLICO-ALVO
Profissionais com conhecimentos básicos em programação.
MATRÍCULAS
Até 29/09/2011 na APM-Liberato, das 8h às 21h, mediante o pagamento da primeira parcela, a apresentação do comprovante de residência e cópia do RG e do CPF (se menor de idade, apresentar documentos do pai/mãe ou responsável). Endereço: Rua Inconfidentes 395, bairro Primavera – Novo Hamburgo/RS – Fone: 3584-2029.
segunda-feira, junho 06, 2011
Objective-C custom button
Aqui um snippet de código que usei para customizar um botão no objective-c.
O código adiciona uma linha superior com efeito 3D, muda a cor da borda, adiciona um background em degrade e cria uma borda arredondada. Isso da a impressão de um botão mais dinâmico.
Para utilizar o código abaixo é preciso adicionar a biblioteca QuartzCore e criar uma view com um botão dentro. Feito isso é só chamar o método da seguinte maneira:
[self drawCustomViewButton:myCustomView];
O código adiciona uma linha superior com efeito 3D, muda a cor da borda, adiciona um background em degrade e cria uma borda arredondada. Isso da a impressão de um botão mais dinâmico.
Para utilizar o código abaixo é preciso adicionar a biblioteca QuartzCore e criar uma view com um botão dentro. Feito isso é só chamar o método da seguinte maneira:
[self drawCustomViewButton:myCustomView];
#import <QuartzCore/QuartzCore.h>
- (void)drawCustomViewButton:(UIView*)v {
v.layer.cornerRadius = 3;
v.layer.borderWidth = 1;
v.layer.borderColor = [[UIColor colorWithRed:1/255.0 green:1/255.0 blue:1/255.0 alpha:1.0] CGColor];
CALayer *line = [CALayer layer];
line.frame = CGRectMake(3, 1, v.frame.size.width-6, 1);
line.backgroundColor = [[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1.0] CGColor];
CAGradientLayer *gradient = [CAGradientLayer layer];
gradient.frame = v.bounds;
gradient.colors = [NSArray arrayWithObjects:
(id)[[UIColor colorWithRed:1/255.0 green:1/255.0 blue:1/255.0 alpha:1.0] CGColor],
(id)[[UIColor colorWithRed:200/255.0 green:200/255.0 blue:200/255.0 alpha:1.0] CGColor], nil];
gradient.cornerRadius = 3;
[v.layer insertSublayer:gradient atIndex:0];
[v.layer insertSublayer:line atIndex:1];
}
quinta-feira, abril 28, 2011
Convert NSString to DateTime
Para converter uma string em data basta passar o formato da data a ser convertida. No exemplo um formato de data padrão BR. Se caso mudar o formato de entrada não esqueça de mudar o formatador da data.
NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init];
[dateFormat setDateFormat:@"dd/MM/yyyy"];
NSDate *mydate = [dateFormat dateFromString:@"01/12/2010"];
segunda-feira, abril 25, 2011
WCF + Objective-C
Depois de muito tentar e procurar uma alternativa para fazer a conexão de um serviço WCF com minha aplicação, finalmente achei uma solução.
Bom primeiro devemos adicionar as variaveis no header da classe que irá conter a conexão.
Depois na implementação o método que irá chamar o serviço.
E depois adicione os métodos de comunicação com o serviço na mesma classe.
Bom primeiro devemos adicionar as variaveis no header da classe que irá conter a conexão.
NSMutableData *webData;
NSMutableString *soapResults;
NSURLConnection *conn;
NSXMLParser *xmlParser;
BOOL elementFound;
Depois na implementação o método que irá chamar o serviço.
NSString *SOAPEnvelope =
[NSString stringWithFormat:
@"<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" "<SOAP-ENV:Envelope \n" "xmlns:xsd=\"http://www.w3.org/2001/XMLSchema\" \n" "xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" \n" "xmlns:SOAP-ENC=\"http://schemas.xmlsoap.org/soap/encoding/\" \n" "SOAP-ENV:encodingStyle=\"http://schemas.xmlsoap.org/soap/encoding/\" \n" "xmlns:SOAP-ENV=\"http://schemas.xmlsoap.org/soap/envelope/\"> \n" "<SOAP-ENV:Body> \n" "<HelloWorld xmlns=\"http://tempuri.org/\">" "</HelloWorld> \n" "</SOAP-ENV:Body> \n" "</SOAP-ENV:Envelope>"];
//Debug
NSLog(@"SOAP ENVELOPE %@", SOAPEnvelope);
NSURL *url = [NSURL URLWithString:@"http://SERVER/WCFServiceName/ServiceName.svc"];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
//Header
NSString *SOAPEnvelopeLength = [NSString stringWithFormat:@"%d", [SOAPEnvelope length]];
[request addValue:@"text/xml; charset=utf-8" forHTTPHeaderField:@"Content-Type"];
[request addValue:@"http://tempuri.org/WCFServiceName/HelloWorld" forHTTPHeaderField:@"SOAPAction"];
[request addValue:SOAPEnvelopeLength forHTTPHeaderField:@"Content-Length"];
//Method & Body
[request setHTTPMethod:@"POST"];
[request setHTTPBody:[SOAPEnvelope dataUsingEncoding:NSUTF8StringEncoding]];
// Connection
conn = [[NSURLConnection alloc] initWithRequest:request delegate:self];
if (conn) {
webData = [[NSMutableData data] retain];
}
E depois adicione os métodos de comunicação com o serviço na mesma classe.
-(void) connection:(NSURLConnection *) connection
didReceiveResponse:(NSURLResponse *) response {
[webData setLength: 0];
}
-(void) connection:(NSURLConnection *) connection
didReceiveData:(NSData *) data {
[webData appendData:data];
}
-(void) connection:(NSURLConnection *) connection
didFailWithError:(NSError *) error {
[webData release];
[connection release];
}
-(void) connectionDidFinishLoading:(NSURLConnection *) connection {
NSLog(@"DONE. Received Bytes: %d", [webData length]);
NSString *theXML = [[NSString alloc]
initWithBytes: [webData mutableBytes]
length:[webData length]
encoding:NSUTF8StringEncoding];
//Debug
NSLog(@"XML %@",theXML);
[theXML release];
if (xmlParser) {
[xmlParser release];
}
xmlParser = [[NSXMLParser alloc] initWithData: webData];
[xmlParser setDelegate:self];
[xmlParser setShouldResolveExternalEntities:YES];
[xmlParser parse];
[connection release];
[webData release];
}
-(void) parser:(NSXMLParser *) parser
didStartElement:(NSString *) elementName
namespaceURI:(NSString *) namespaceURI
qualifiedName:(NSString *) qName
attributes:(NSDictionary *) attributeDict {
//Debug
NSLog(@"%@", elementName);
if( [elementName isEqualToString:@"HelloWorldResult"]) {
if (!soapResults) {
soapResults = [[NSMutableString alloc] init];
}
elementFound = YES;
}
}
-(void)parser:(NSXMLParser *) parser
foundCharacters:(NSString *)string {
if (elementFound) {
[soapResults appendString: string];
}
}
-(void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName {
NSLog(@"SOAP RESULT %@", soapResults);
if ([elementName isEqualToString:@"HelloWorldResult"]) {
UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Hello"
message:soapResults
delegate:self
cancelButtonTitle:@"OK"
otherButtonTitles:nil];
[alert show];
[alert release];
[soapResults setString:@""];
elementFound = FALSE;
}
}
quinta-feira, abril 07, 2011
Desenvolvimento IPhone sem o uso do Interface Builder
Bom, depois de ver mais de dez vezes os vídeos abaixo, resolvi criar um complemento deles. Senti falta de ter o código final ou em partes para poder a companhar o vídeo, então ae vai minha extensão para o aprendizado. Para ficar mais claro o uso desse complemento sugiro ver os vídeos e acompanhar o código aqui postado conforme a evolução.
O primeiro passo a ser seguido é ver o vídeo abaixo e apenas VER, pois no primeiro é criado uma aplicação do tipo View-Based App e no segundo uma Window-Based App.(tive problemas na primeira vez que vi o 2o video e utilizei o mesmo projeto 'o_o). Então fica a dica, presta atenção no vídeo e depois faz utilizando a Window-Based App.
A segunda parte está dividida em 3 seções, que explicam bem o funcionamento do Obj-C e do IPhone.
Abaixo alguns passos mostrados no vídeo.
apagar o arquivo XIB dentro da pasta resources.
apagar a property Main nib file base name do arquivo projeto-info.plist
adicionar o nome da AppDelegate na main.m
no arquivo da AppDelegate.h, apagar a referencia do IB(Interface Builder) IBOutlet
criar uma instancia da window no arquivo AppDelegate.m
novamente no AppDelegate.h, criar o controle abaixo
adicionar um ViewController ao projeto clicando em Classes>Add>New File...
importar a ViewController na AppDelegate.h e criar uma variavel do tipo ViewController, com isso o código deve estar parecido com o abaixo.
criar uma instancia do ViewController inicializar o navController passando a view como parametro e por final adicionar o navController na window, isso tudo no arquivo AppDelegate.m
re-escrever o metodo INIT da ViewController - nessa parte encerra o vídeo, então o código será re-escrito abaixo junto com o vídeo a seguir.
criar uma View na pasta Classes - para isso clique na pasta Add>New File...
importar a View na ViewController.m, com isso o código deve estar parecido com isso:
Note que no meu caso criei a View com o nome MainView!
Nesse ponto termina o processo para desvincular o IB do seu projeto, a partir daqui o vídeo mostra como criar outros componentes e seus funcionamentos. Aconselho ver todos os vídeos para adquirir mais conhecimento da plataforma. Para ver os demais vídeos entre no canal da ToucheMobile no youtube.
O primeiro passo a ser seguido é ver o vídeo abaixo e apenas VER, pois no primeiro é criado uma aplicação do tipo View-Based App e no segundo uma Window-Based App.(tive problemas na primeira vez que vi o 2o video e utilizei o mesmo projeto 'o_o). Então fica a dica, presta atenção no vídeo e depois faz utilizando a Window-Based App.
A segunda parte está dividida em 3 seções, que explicam bem o funcionamento do Obj-C e do IPhone.
Abaixo alguns passos mostrados no vídeo.
apagar o arquivo XIB dentro da pasta resources.
apagar a property Main nib file base name do arquivo projeto-info.plist
adicionar o nome da AppDelegate na main.m
int main(int argc, char *argv[])
{
{
NSAutoreleasePool * pool = [[NSAutoreleasePool alloc] init];
int retVal = UIApplicationMain(argc, argv, nil, @"NomeDoProjetoAppDelegate");
[pool release];
return retVal;
}
no arquivo da AppDelegate.h, apagar a referencia do IB(Interface Builder) IBOutlet
@property (nonatomic, retain) IBOutlet UIWindow *window;
criar uma instancia da window no arquivo AppDelegate.m
window = [[UIWindow alloc] init];
novamente no AppDelegate.h, criar o controle abaixo
UINavigationController *navController;
importar a ViewController na AppDelegate.h e criar uma variavel do tipo ViewController, com isso o código deve estar parecido com o abaixo.
#import
#import "NomeDoProjetoViewController.h"
@interface NomeDoProjetoAppDelegate : NSObject {
UIWindow *window;
UINavigationController *navController;
NomeDoProjetoViewController *vcNomeDoProjeto;
}
@property (nonatomic, retain) UIWindow *window;
@end
criar uma instancia do ViewController inicializar o navController passando a view como parametro e por final adicionar o navController na window, isso tudo no arquivo AppDelegate.m
vcNomeDoProjeto = [[NomeDoProjetoViewController alloc] init];
navController = [[UINavigationController alloc] initWithRootViewController: vcNomeDoProjeto];
re-escrever o metodo INIT da ViewController - nessa parte encerra o vídeo, então o código será re-escrito abaixo junto com o vídeo a seguir.
- (id)init {
if (self = [super init]) {
}
return self;
}
criar uma View na pasta Classes - para isso clique na pasta Add>New File...
importar a View na ViewController.m, com isso o código deve estar parecido com isso:
Note que no meu caso criei a View com o nome MainView!
#import "NomeDoProjetoViewController.h"
#import "mainView.h"
@implementation NomeDoProjetoViewController
- (id)init {
if (self = [super init]) {
mainView *v = [[mainView alloc] initWithFrame:CGRectMake(0, 20, 320, 460)];
self.view = v;
[v release];
}
return self;
}
Nesse ponto termina o processo para desvincular o IB do seu projeto, a partir daqui o vídeo mostra como criar outros componentes e seus funcionamentos. Aconselho ver todos os vídeos para adquirir mais conhecimento da plataforma. Para ver os demais vídeos entre no canal da ToucheMobile no youtube.
sexta-feira, março 18, 2011
Oportunidade
Lanço aqui uma oportunidade para criação de uma micro empresa de games para IPhone e possivelmente Android.
A idéia é simples, o desenvolvimento do jogo seria tudo por minha conta. O que precisaria seria diretores de arte, criação de idéias e sonoplastia.
O objetivo é criar games ou até apps e com os lucro fazer uma divisão de igual pra igual. Assim todos podem dar seu melhor para a criação dos games/apps.
Gostaria de imediato já propor a idéia de um jogo simples que poderiamos lançar FREE para divulgar os demais projetos. Poderia ser um Arkanoid ou um jogo do genero, nada de novo e muito complexo.
Mas desde já deixo a palavra para os que se interessarem.
Vale a pena deixar claro que todo o processo administrativo será feito pela minha pessoa, assim como os pagamentos e até um futuro contrato para garantir o lucro das partes envolvidas. E quem sabe até criar uma empresa com local fixo e quem puder fazer parte será bem vindo.
Um pouco sobre minha pessoa:
Formado em Ciência da Computação
Tenho 30 anos
Tenho mais de 15 anos de experiência em programação
Certificado Microsoft .Net MCAD e MCT
Att.
Daniel Colnaghi
danielcolnaghi.blogspot.com
danielcolnaghi@gmail.com
A idéia é simples, o desenvolvimento do jogo seria tudo por minha conta. O que precisaria seria diretores de arte, criação de idéias e sonoplastia.
O objetivo é criar games ou até apps e com os lucro fazer uma divisão de igual pra igual. Assim todos podem dar seu melhor para a criação dos games/apps.
Gostaria de imediato já propor a idéia de um jogo simples que poderiamos lançar FREE para divulgar os demais projetos. Poderia ser um Arkanoid ou um jogo do genero, nada de novo e muito complexo.
Mas desde já deixo a palavra para os que se interessarem.
Vale a pena deixar claro que todo o processo administrativo será feito pela minha pessoa, assim como os pagamentos e até um futuro contrato para garantir o lucro das partes envolvidas. E quem sabe até criar uma empresa com local fixo e quem puder fazer parte será bem vindo.
Um pouco sobre minha pessoa:
Formado em Ciência da Computação
Tenho 30 anos
Tenho mais de 15 anos de experiência em programação
Certificado Microsoft .Net MCAD e MCT
Att.
Daniel Colnaghi
danielcolnaghi.blogspot.com
danielcolnaghi@gmail.com
Assinar:
Postagens (Atom)