Skip to content

Instantly share code, notes, and snippets.

@rubywai
rubywai / newsfeed.kt
Created December 4, 2025 16:33
News feed ui compose
package com.rubylearner.mycomposelesson
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
package com.rubylearner.mycomposelesson
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.background
import androidx.compose.foundation.horizontalScroll
import androidx.compose.foundation.layout.Arrangement
@rubywai
rubywai / scaffold_composable.kt
Last active December 1, 2025 12:22
@6 Scaffold Composable
package com.rubylearner.mycomposelesson
import android.os.Bundle
import android.widget.Toast
import androidx.activity.ComponentActivity
import androidx.activity.compose.setContent
import androidx.activity.enableEdgeToEdge
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
@rubywai
rubywai / website.js
Last active October 18, 2025 11:06
flutter_web_server_with_nodejs
const express = require("express");
const path = require("path");
const app = express();
const port = process.env.PORT || 3000;
const buildPath = path.join(__dirname, "web");
// Serve static files first
app.use(express.static(buildPath));
class PdfViewer extends ConsumerStatefulWidget {
const PdfViewer({
super.key,
this.filePath,
this.fileUrl,
});
final String? filePath;
final String? fileUrl;
import 'package:flutter/material.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
import 'package:flutter/material.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'package:flutter_bloc_weather/features/search/ui/city_search_page.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:get_it/get_it.dart';
import 'package:integration_test/integration_test.dart';
class FakeSearchService implements SearchApiServices {
@override
import 'package:integration_test/integration_test_driver.dart';
Future<void> main() => integrationDriver();
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:mockito/mockito.dart';
import 'package:get_it/get_it.dart';
import 'package:flutter_bloc_weather/features/search/ui/city_search_page.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import '../bloc/api_mock.mocks.dart';
import 'package:flutter_bloc_weather/features/search/bloc/city_search_cubit.dart';
import 'package:flutter_bloc_weather/features/search/bloc/city_search_state.dart';
import 'package:flutter_bloc_weather/features/search/data/model/city_model.dart';
import 'package:flutter_test/flutter_test.dart';
import 'package:bloc_test/bloc_test.dart';
import 'package:get_it/get_it.dart';
import 'package:mockito/mockito.dart';
import 'package:flutter_bloc_weather/features/search/data/services/search_api_services.dart';