# IMessage

iMessage é um serviço de mensagens instantâneas desenvolvido pela Apple Inc. e lançado em 2011. O iMessage funciona exclusivamente nas plataformas da Apple: macOS, iOS, iPadOS e watchOS.
O serviço permite o envio de mensagens de textos, imagens, vídeos e documentos por meio de uma conexão de internet. Ele oferece também status de entrega e leitura (quando o destinatário recebe e lê a mensagem), sistema de criptografia de ponta a ponta para que apenas o remetente e o destinatário - ninguém mais, incluindo a própria Apple - possam ler as mensagens. O serviço também permite o envio de dados de localização e adesivos. No iOS e no iPadOS, os desenvolvedores de terceiros podem adicionar mais recursos ao iMessage com o desenvolvimento de extensões personalizadas, como por exemplo o compartilhamento rápido de músicas recentemente reproduzidas de um determinado aplicativo.
Foi lançado para iOS em 2011 e macOS (anteriormente chamado de OS X) em 2012. Em 2020, a Apple anunciou uma versão totalmente redesenhada do aplicativo para macOS, que adiciona alguns dos recursos anteriormente indisponíveis no Mac, incluindo compartilhamento de localização e efeitos de mensagens que estavam presentes nos sistemas móveis como iPhone e iPad.

## História

O iMessage foi anunciado por Scott Forstall na conferência da WWDC 2011 em 6 de junho de 2011. Uma versão do aplicativo Mensagens para iOS com suporte para iMessage foi incluída na atualização do iOS 5 em 12 de outubro de 2011. Em 16 de fevereiro de 2012, a Apple anunciou que um novo aplicativo de mensagens substituiria o iChat e faria parte do OS X Mountain Lion. O OS X Mountain Lion foi lançado em 25 de julho de 2012.
Em 23 de outubro de 2012, o CEO da Apple, Tim Cook, anunciou que os usuários de dispositivos da Apple enviaram 300 bilhões de mensagens usando o iMessage e que a Apple entrega uma média de 28 mil mensagens por segundo. Em fevereiro de 2016, Eddy Cue anunciou que o número de iMessages enviados por segundo havia crescido para 200 mil.
Em maio de 2014, um processo foi aberto contra a Apple por causa de um problema que, se um usuário mudar de um dispositivo Apple para um dispositivo não-Apple, as mensagens que estão sendo entregues a eles através do iMessage não chegariam ao seu destino. Em novembro de 2014, a Apple resolveu esse problema fornecendo instruções e uma ferramenta on-line para remover uma conta registrada do iMessage. Um tribunal federal rejeitou o processo a favor da Apple.
Em 21 de março de 2016, um grupo de pesquisadores da Universidade Johns Hopkins publicou um relatório no qual demonstravam que um invasor em posse de textos criptografados do iMessage poderia potencialmente descriptografar fotos e vídeos que haviam sido enviados através do serviço. Os pesquisadores publicaram suas descobertas após a vulnerabilidade ter sido corrigida pela Apple.
Em 13 de junho de 2016, a Apple anunciou a adição de aplicativos e extensões ao serviço iMessage, acessível através dos aplicativos Mensagens. Os aplicativos podem criar e compartilhar conteúdo, adicionar adesivos, fazer pagamentos e muito mais dentro da aba de conversas, sem ter que mudar para aplicativos autônomos. Um kit de desenvolvimento para aplicativos próprios para o iMessage foi anunciado pela Apple durante a apresentação da WWDC. Os editores também podem criar aplicativos de adesivos próprios sem a necessidade escrever nenhuma linha de código. De acordo com a Sensor Tower, a partir de março de 2017, a iMessage App Store possuia aproximadamente 5 mil aplicativos habilitados para mensagem.
Na conferência da WWDC 2020 que aconteceu em 22 de junho de 2020, a Apple antecipou a próxima versão do seu sistema operacional macOS, previsto para ser lançado no final de 2020. O Big Sur terá uma versão redesenhada do aplicativo com recursos anteriormente disponíveis apenas em dispositivos iOS, como efeitos de mensagens e compartilhamento de localização.

## Recursos

O iMessage permite que os usuários enviem textos, documentos, fotos, vídeos, informações de contato e mensagens em grupo utilizando a internet para outros usuários de iOS ou macOS. O iMessage é uma alternativa às mensagens SMS e MMS para a maioria dos usuários com dispositivos executando o iOS 5 ou modelos posteriores. Ao selecionar a configuração "Enviar como SMS" no aplicativo Mensagens, a mensagem será enviada como SMS, caso o remetente não tiver uma conexão de Internet ativa. Se o receptor não tiver conexão com a Internet, a mensagem deve ser armazenada em um servidor até que uma conexão seja restaurada.
O iMessage pode ser utilizado através do aplicativo Mensagens em um iPhone, iPad ou iPod Touch executando o iOS 5 ou versão mais recente ou em um Mac executando o OS X Mountain Lion ou versões mais recente. Os proprietários desses dispositivos podem registrar um ou mais endereços de e-mail para criar uma conta. Além disso, os proprietários de iPhone podem registrar seus números de telefone com a Apple, desde que a operadora forneça suporte. Quando uma mensagem é enviada para um número de celular, o aplicativo verificará se aquele número possui uma conta registrada no iMessage, caso contrário a mensagem será enviada como SMS.
No aplicativo Mensagens, a mensagem enviada pelo usuário está alinhada à direita, com respostas de outras pessoas à esquerda. Um usuário pode ver se o outro usuário do iMessage está digitando uma mensagem. Um balão de conversa de cor cinza aparece no rodapé da conversa quando uma resposta é iniciada. Também é possível iniciar uma conversa em um dispositivo iOS e continuar em outro utilizando o mesmo Apple ID. Em iPhones, balões verdes indicam mensagens de SMS; em todos os dispositivos iOS, os balões azuis e bolhas de texto indicam a mensagens de iMessage.
Todas as mensagens do iMessage são criptografadas e possuem recibos de entrega. Se o destinatário habilitar a opção de "Confirmação de Leitura" nos Ajustes do dispositivo, o remetente poderá ver quando o destinatário leu a mensagem. O iMessage também permite que os usuários configurem chats com mais de duas pessoas - um "bate-papo em grupo".
Com o lançamento do iOS 10, os usuários podem enviar mensagens acompanhadas de uma série de efeitos no envio dos balões de mensagens ou tela de mensagens. Ao segurar o botão de envio com força, a gama de efeitos é surgida para que os usuários selecionem um efeito a ser enviado ao receptor.
Com os lançamentos do iOS 14 e macOS 11 Big Sur, os usuários ganharam uma novos recursos, como a capacidade de fixar conversas individuais, mencionar outros usuários, definir uma imagem para conversas em grupo e enviar respostas pra um balão de mensagem específico. Além disso, mais recursos do aplicativo Mensagens no iOS e iPadOS foram adicionados no macOS.

## Tecnologia

O protocolo iMessage é baseado no serviço Apple Push Notification (APNs) — um protocolo binário-proprietário. Ele configura uma conexão Keep-Alive com os servidores da Apple. Cada conexão tem seu próprio código único, que atua como um identificador para a rota usada no envio de mensagens para um dispositivo específico. A conexão é criptografada com TLS usando um certificado do lado do cliente, que é solicitado pelo dispositivo na ativação do iMessage.