Endereço

Rua Cônego Jerônio Pimentel, 299 - Umarizal - Belém - Pa

Contato

(091) 99353-7150
contato@circuit.inf.br

Atendimento

Seg-Sex: 08:00 às 22.00
Sábado: 08:00 às 14:00

Título

Autem vel eum iriure dolor in hendrerit in vulputate velit esse molestie consequat, vel illum dolore eu feugiat nulla facilisis at vero eros et dolore feugait.

Arquivo do autor:%s Igor Goldim

Orientação a Objeto – SOLID

Orientação a Objeto – SOLID

SOLID é um acrônimo dos cinco primeiros princípios da programação orientada a objetos e design de código identificados por Robert C. Martin (ou Uncle Bob) por volta do ano 2000. O acrônimo SOLID foi introduzido por Michael Feathers, após observar que os cinco princípios poderiam se encaixar nesta palavra.

São eles:

LetraSiglaNomeDefinição
S SRPPrincipio da Responsabilidade ÚnicaUma classe deve ter um, e somente um, motivo para mudar.
O OCPPrincípio Aberto-FechadoVocê deve ser capaz de estender um comportamento de uma classe, sem modificá-lo.
L LSPPrincípio da Substituição de LiskovAs classes base devem ser substituíveis por suas classes derivadas.
I ISPPrincípio da Segregação da InterfaceMuitas interfaces específicas são melhores do que uma interface única.
D DIPPrincípio da inversão da dependênciaDependa de uma abstração e não de uma implementação.

Os princípios SOLID devem ser aplicados para se obter os benefícios da orientação a objetos, tais como:

  • Seja fácil de se manter, adaptar e se ajustar às alterações de escopo;
  • Seja testável e de fácil entendimento;
  • Seja extensível para alterações com o menor esforço necessário;
  • Que forneça o máximo de reaproveitamento;
  • Que permaneça o máximo de tempo possível em utilização.

Utilizando os princípios SOLID é possível evitar problemas muito comuns:

  • Dificuldade na testabilidade / criação de testes de unidade;
  • Código macarrônico, sem estrutura ou padrão;
  • Dificuldades de isolar funcionalidades;
  • Duplicação de código, uma alteração precisa ser feita em N pontos;
  • Fragilidade, o código quebra facilmente em vários pontos após alguma mudança.

Os princípios SOLID deveriam ser aplicados por qualquer desenvolvedor maduro, porém pouquíssimos profissionais preocupam-se em utilizá-los, sugiro que crie um sistema simples e utilize estes princípios para treinar, será uma experiência gratificante.

Referências:

Send email with Kotlin for android

var mailto = "mailto:meu@email.com" +
        "?cco=" + "meu@email.com" +
        "&subject=" + Uri.encode("SUBJECT") +
        "&body=" + Uri.encode("MESSAGE")

var emailIntent = Intent(Intent.ACTION_SENDTO)
emailIntent.data= Uri.parse(mailto)

try {
    startActivity(emailIntent)
} catch (e: ActivityNotFoundException) {
    //<em>TODO: Handle case where no email app is available
</em>}

Send SMS with Kotlin for android Studio

val SENT = "SMS_SENT"
val DELIVERED = "SMS_DELIVERED"

var sentPI = PendingIntent.getBroadcast(context, 0, Intent("SMS_SENT"), 0)
var deliveredPI = PendingIntent.getBroadcast(context, 0, Intent("SMS_DELIVERED"), 0)

context.registerReceiver(object : BroadcastReceiver() {
     override fun onReceive(p0: Context?, p1: Intent?) {
      when(resultCode){
           Activity.RESULT_OK -> Toast.makeText(context, "SMS Enviada", Toast.LENGTH_LONG).show()
           SmsManager.RESULT_ERROR_GENERIC_FAILURE -> Toast.makeText(context, "Erro ao enviar SMS falha generica", Toast.LENGTH_LONG).show()
            SmsManager.RESULT_ERROR_NO_SERVICE -> Toast.makeText(context, "Erro ao enviar SMS sem servico", Toast.LENGTH_LONG).show()
            SmsManager.RESULT_ERROR_NULL_PDU -> Toast.makeText(context, "Erro ao enviar SMS PDU Nulo", Toast.LENGTH_LONG).show()
             SmsManager.RESULT_ERROR_RADIO_OFF -> Toast.makeText(context, "Erro ao enviar SMS Sem sinal", Toast.LENGTH_LONG).show()
                    }
                }
            }, IntentFilter(SENT))


context.registerReceiver(object : BroadcastReceiver() {
     override fun onReceive(p0: Context?, p1: Intent?) {
      when(resultCode){
           Activity.RESULT_OK -> Toast.makeText(context, "SMS Enviada", Toast.LENGTH_LONG).show()
           Activity.RESULT_CANCELED -> Toast.makeText(context, "SMS não Enviada", Toast.LENGTH_LONG).show()
           else -> Toast.makeText(context, "Erro ao enviar SMS", Toast.LENGTH_LONG).show()
                    }
                } }, IntentFilter(DELIVERED))


val smsManager = SmsManager.getDefault()
            smsManager.sendTextMessage(phoneNumber, null, message, sentPI, deliveredPI)

Design Thinking

É o conjunto de ideias e insights para abordar problemas, relacionados a futuras aquisições de informações, análise de conhecimento e propostas de soluções.